Example #1
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="paramModel">UIModel</param>
        /// <returns></returns>
        public bool SaveDetailDS(WalletCreateAccountUIModel paramModel)
        {
            var funcName = "SaveDetailDS";

            LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null);

            //服务端检查
            if (!ServerCheck(paramModel))
            {
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                return(false);
            }

            #region 准备数据

            //将UIModel转为TBModel
            var argsWallet = CopyModel <MDLEWM_Wallet>(paramModel);
            //待保存的钱包异动日志
            MDLEWM_WalletTrans newWalletTrans = new MDLEWM_WalletTrans();

            //判断主键是否被赋值
            if (string.IsNullOrEmpty(argsWallet.Wal_ID))
            {
                #region 新增
                //生成新ID
                argsWallet.Wal_ID = Guid.NewGuid().ToString();
                //生成钱包账号(汽配商户编码+7位顺序号)
                argsWallet.Wal_No          = GenerateWalletNo();
                argsWallet.Wal_CreatedBy   = LoginInfoDAX.UserName;
                argsWallet.Wal_CreatedTime = BLLCom.GetCurStdDatetime();
                #endregion
            }
            else
            {
                #region 更新
                //主键被赋值,则需要更新,更新需要设定更新条件
                argsWallet.WHERE_Wal_ID        = argsWallet.Wal_ID;
                argsWallet.WHERE_Wal_VersionNo = argsWallet.Wal_VersionNo;
                argsWallet.Wal_VersionNo++;
                #endregion
            }
            argsWallet.Wal_UpdatedBy   = LoginInfoDAX.UserName;
            argsWallet.Wal_UpdatedTime = BLLCom.GetCurStdDatetime();

            //生成钱包异动日志
            newWalletTrans = BLLCom.CreateWalletTrans(new MDLEWM_WalletTrans()
            {
                WalT_Org_ID      = LoginInfoDAX.OrgID,
                WalT_Org_Name    = LoginInfoDAX.OrgShortName,
                WalT_Wal_ID      = argsWallet.Wal_ID,
                WalT_Wal_No      = argsWallet.Wal_No,
                WalT_TypeName    = WalTransTypeEnum.Name.KH,
                WalT_TypeCode    = WalTransTypeEnum.Code.KH,
                WalT_ChannelName = LoginTerminalEnum.Name.PC,
                WalT_ChannelCode = LoginTerminalEnum.Code.PC,
                WalT_Remark      = argsWallet.Wal_Remark,
            });
            #endregion
            #region 带事务的保存

            try
            {
                DBManager.BeginTransaction(DBCONFIG.Coeus);

                #region 保存[电子钱包]

                //执行保存
                bool saveWalletResult = _bll.Save(argsWallet, argsWallet.Wal_ID);
                if (!saveWalletResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.EWM_Wallet });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }

                #endregion

                #region 保存[电子钱包异动]

                bool insertWalletTransResult = _bll.Insert(newWalletTrans);
                if (!insertWalletTransResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.EWM_WalletTrans });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }
                #endregion

                DBManager.CommitTransaction(DBCONFIG.Coeus);
            }
            catch (Exception ex)
            {
                DBManager.RollBackTransaction(DBCONFIG.Coeus);
                ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message });
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null);
                return(false);
            }

            #endregion

            //将最新数据回写给DetailDS
            CopyModel(argsWallet, paramModel);

            return(true);
        }
        /// <summary>
        /// 充值
        /// </summary>
        /// <param name="paramModel">UIModel</param>
        /// <param name="paramDepositDetailList">充值明细列表</param>
        /// <returns></returns>
        public bool SaveDetailDS(WalletDepositMoneyUIModel paramModel, List <WalletDepositMoneyUIModel> paramDepositDetailList)
        {
            var funcName = "SaveDetailDS";

            LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null);

            //服务端检查
            if (!ServerCheck(paramModel))
            {
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                return(false);
            }

            #region 准备数据

            //将UIModel转为TBModel
            var argsWallet = CopyModel <MDLEWM_Wallet>(paramModel);
            //待保存的钱包异动日志
            MDLEWM_WalletTrans newWalletTrans = new MDLEWM_WalletTrans();

            #region 更新[电子钱包]
            //钱包可用余额
            argsWallet.Wal_AvailableBalance = argsWallet.Wal_AvailableBalance;
            argsWallet.Wal_UpdatedBy        = LoginInfoDAX.UserName;
            argsWallet.Wal_UpdatedTime      = BLLCom.GetCurStdDatetime();
            argsWallet.WHERE_Wal_ID         = argsWallet.Wal_ID;
            argsWallet.WHERE_Wal_VersionNo  = argsWallet.Wal_VersionNo;
            #endregion

            if (paramModel.ThisDepositAmount > 0)
            {
                #region 获取充值方式

                //充值方式名称
                string tempPaymentModeName = string.Empty;
                //充值方式编码
                string tempPaymentModeCode = string.Empty;
                foreach (var loopAmountTransDetail in paramDepositDetailList)
                {
                    if (loopAmountTransDetail.PayAmount == null ||
                        loopAmountTransDetail.PayAmount == 0)
                    {
                        continue;
                    }
                    tempPaymentModeName += (!string.IsNullOrEmpty(tempPaymentModeName) ? SysConst.Semicolon_DBC : string.Empty) + loopAmountTransDetail.PaymentModeName;
                    tempPaymentModeCode += (!string.IsNullOrEmpty(tempPaymentModeCode) ? SysConst.Semicolon_DBC : string.Empty) + loopAmountTransDetail.PaymentModeCode;
                }
                #endregion

                //生成钱包异动日志
                newWalletTrans = BLLCom.CreateWalletTrans(new MDLEWM_WalletTrans()
                {
                    WalT_Org_ID   = LoginInfoDAX.OrgID,
                    WalT_Org_Name = LoginInfoDAX.OrgShortName,
                    WalT_Wal_ID   = argsWallet.Wal_ID,
                    WalT_Wal_No   = argsWallet.Wal_No,
                    //异动类型为{充值}
                    WalT_TypeName = WalTransTypeEnum.Name.CZ,
                    WalT_TypeCode = WalTransTypeEnum.Code.CZ,
                    //充值方式
                    WalT_RechargeTypeName = tempPaymentModeName,
                    WalT_RechargeTypeCode = tempPaymentModeCode,
                    //异动金额
                    WalT_Amount      = paramModel.ThisDepositAmount,
                    WalT_ChannelName = LoginTerminalEnum.Name.PC,
                    WalT_ChannelCode = LoginTerminalEnum.Code.PC,
                    WalT_Remark      = argsWallet.Wal_Remark,
                });
            }
            #endregion

            #region 带事务的保存

            try
            {
                DBManager.BeginTransaction(DBCONFIG.Coeus);

                #region 保存[电子钱包]

                bool saveWalletResult = _bll.Save(argsWallet);
                if (!saveWalletResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.RECHARGE + SystemTableEnums.Name.EWM_Wallet });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }

                #endregion

                #region 保存[电子钱包异动]

                bool insertWalletTransResult = _bll.Insert(newWalletTrans);
                if (!insertWalletTransResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.EWM_WalletTrans });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }
                #endregion

                DBManager.CommitTransaction(DBCONFIG.Coeus);
            }
            catch (Exception ex)
            {
                DBManager.RollBackTransaction(DBCONFIG.Coeus);
                ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.RECHARGE, ex.Message });
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null);
                return(false);
            }

            #endregion

            //将最新数据回写给DetailDS
            CopyModel(argsWallet, paramModel);

            return(true);
        }
Example #3
0
        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="paramHead">UIModel</param>
        /// <param name="paramDetailList">明细UIModel</param>
        /// <returns></returns>
        public bool ApproveDetailDS(ReceiptBillManagerUIModel paramHead, SkyCarBindingList <ReceiptBillManagerDetailUIModel, MDLFM_ReceiptBillDetail> paramDetailList)
        {
            var funcName = "ApproveDetailDS";

            LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null);

            if (paramHead == null ||
                string.IsNullOrEmpty(paramHead.RB_ID) ||
                string.IsNullOrEmpty(paramHead.RB_No))
            {
                //没有获取到收款单,审核失败
                ResultMsg = MsgHelp.GetMsg(MsgCode.W_0024, new object[] { SystemTableEnums.Name.FM_ReceiptBill, SystemActionEnum.Name.APPROVE });
                return(false);
            }

            var receiptBillManagerDetailList =
                paramDetailList.Where(x => x.RBD_SourceTypeName == ReceiptBillDetailSourceTypeEnum.Name.SGSK);

            if (receiptBillManagerDetailList.Count() != paramDetailList.Count() || receiptBillManagerDetailList.Count() == 0)
            {
                //收款单不为手工收款,不能审核
                ResultMsg = MsgHelp.GetMsg(MsgCode.E_0017, new object[] { SystemTableEnums.Name.FM_ReceiptBill + MsgParam.NO + MsgParam.BE + PayBillDetailSourceTypeEnum.Name.SGFK, SystemActionEnum.Name.APPROVE });
                return(false);
            }

            #region 定义变量

            //待更新的[收款单]
            MDLFM_ReceiptBill updateReceiptBill = paramHead.ToTBModelForSaveAndDelete <MDLFM_ReceiptBill>();
            //待更新[收款单明细]
            List <MDLFM_ReceiptBillDetail> updateReceiptBillDetailList = new List <MDLFM_ReceiptBillDetail>();
            //待新增对应的[应收单]
            List <MDLFM_AccountReceivableBill> addAccountReceivableBillList = new List <MDLFM_AccountReceivableBill>();
            //待新增对应的[应收单明细]
            List <MDLFM_AccountReceivableBillDetail> addAccountReceivableBillDetailList = new List <MDLFM_AccountReceivableBillDetail>();
            //待更新的[钱包]
            MDLEWM_Wallet updateWallet = new MDLEWM_Wallet();
            //待新增的[钱包异动]
            MDLEWM_WalletTrans addWalletTrans = new MDLEWM_WalletTrans();
            #endregion

            #region 准备数据

            if (paramDetailList[0].RBD_SourceTypeName == ReceiptBillDetailSourceTypeEnum.Name.SGSK)
            {
                #region 新增[应收单]和[应收单明细]

                foreach (var loopDetail in paramDetailList)
                {
                    #region 新增[应收单]

                    MDLFM_AccountReceivableBill accountReceivableBill = new MDLFM_AccountReceivableBill
                    {
                        ARB_ID                      = System.Guid.NewGuid().ToString(),
                        ARB_No                      = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.ARB),
                        ARB_BillDirectCode          = BillDirectionEnum.Code.PLUS,
                        ARB_BillDirectName          = BillDirectionEnum.Name.PLUS,
                        ARB_SourceTypeCode          = AccountReceivableBillSourceTypeEnum.Code.SGCJ,
                        ARB_SourceTypeName          = AccountReceivableBillSourceTypeEnum.Name.SGCJ,
                        ARB_Org_ID                  = LoginInfoDAX.OrgID,
                        ARB_Org_Name                = LoginInfoDAX.OrgShortName,
                        ARB_PayObjectTypeCode       = paramHead.RB_PayObjectTypeCode,
                        ARB_PayObjectTypeName       = paramHead.RB_PayObjectTypeName,
                        ARB_PayObjectID             = paramHead.RB_PayObjectID,
                        ARB_PayObjectName           = paramHead.RB_PayObjectName,
                        ARB_AccountReceivableAmount = loopDetail.RBD_ReceiveAmount,
                        ARB_ReceivedAmount          = loopDetail.RBD_ReceiveAmount,
                        ARB_UnReceiveAmount         = 0,
                        ARB_BusinessStatusName      = AccountReceivableBillStatusEnum.Name.YWC,
                        ARB_BusinessStatusCode      = AccountReceivableBillStatusEnum.Code.YWC,
                        ARB_ApprovalStatusName      = ApprovalStatusEnum.Name.YSH,
                        ARB_ApprovalStatusCode      = ApprovalStatusEnum.Code.YSH,
                        ARB_IsValid                 = true,
                        ARB_CreatedBy               = LoginInfoDAX.UserName,
                        ARB_CreatedTime             = BLLCom.GetCurStdDatetime(),
                        ARB_UpdatedBy               = LoginInfoDAX.UserName,
                        ARB_UpdatedTime             = BLLCom.GetCurStdDatetime(),
                    };
                    addAccountReceivableBillList.Add(accountReceivableBill);
                    //回写付款单的来源的单号
                    loopDetail.RBD_SrcBillNo = accountReceivableBill.ARB_No;
                    #endregion

                    #region 新增[应收单明细]

                    MDLFM_AccountReceivableBillDetail accountPayableBillDetail = new MDLFM_AccountReceivableBillDetail
                    {
                        ARBD_ID                      = Guid.NewGuid().ToString(),
                        ARBD_ARB_ID                  = accountReceivableBill.ARB_ID,
                        ARBD_IsMinusDetail           = false,
                        ARBD_Org_ID                  = accountReceivableBill.ARB_Org_ID,
                        ARBD_Org_Name                = accountReceivableBill.ARB_Org_Name,
                        ARBD_AccountReceivableAmount = loopDetail.RBD_ReceiveAmount,
                        ARBD_ReceivedAmount          = loopDetail.RBD_ReceiveAmount,
                        ARBD_UnReceiveAmount         = 0,
                        ARBD_BusinessStatusName      = accountReceivableBill.ARB_BusinessStatusName,
                        ARBD_BusinessStatusCode      = accountReceivableBill.ARB_BusinessStatusCode,
                        ARBD_ApprovalStatusName      = accountReceivableBill.ARB_ApprovalStatusName,
                        ARBD_ApprovalStatusCode      = accountReceivableBill.ARB_ApprovalStatusCode,
                        ARBD_IsValid                 = true,
                        ARBD_CreatedBy               = LoginInfoDAX.UserName,
                        ARBD_CreatedTime             = BLLCom.GetCurStdDatetime(),
                        ARBD_UpdatedBy               = LoginInfoDAX.UserName,
                        ARBD_UpdatedTime             = BLLCom.GetCurStdDatetime(),
                    };
                    addAccountReceivableBillDetailList.Add(accountPayableBillDetail);
                    #endregion
                }
                #endregion
            }

            #region 收款单

            //更新收款单[业务状态]为{已完成},[审核状态]为{已审核}
            updateReceiptBill.RB_ApprovalStatusName = ApprovalStatusEnum.Name.YSH;
            updateReceiptBill.RB_ApprovalStatusCode = ApprovalStatusEnum.Code.YSH;
            updateReceiptBill.RB_BusinessStatusName = ReceiptBillStatusEnum.Name.YWC;
            updateReceiptBill.RB_BusinessStatusCode = ReceiptBillStatusEnum.Code.YWC;
            updateReceiptBill.RB_UpdatedBy          = LoginInfoDAX.UserName;
            updateReceiptBill.RB_UpdatedTime        = BLLCom.GetCurStdDatetime();

            #endregion

            #region 更新[付款单明细]数据

            _bll.CopyModelList <ReceiptBillManagerDetailUIModel, MDLFM_ReceiptBillDetail>(paramDetailList, updateReceiptBillDetailList);
            foreach (var loopPayBillDetaill in updateReceiptBillDetailList)
            {
                loopPayBillDetaill.WHERE_RBD_ID        = loopPayBillDetaill.RBD_ID;
                loopPayBillDetaill.WHERE_RBD_VersionNo = loopPayBillDetaill.RBD_VersionNo;
                loopPayBillDetaill.RBD_VersionNo++;
            }

            #endregion

            #region 更新[钱包余额]和新增[钱包异动]

            if (paramHead.RB_ReceiveTypeName == TradeTypeEnum.Name.WALLET)
            {
                #region 更新[钱包]

                updateWallet.WHERE_Wal_ID         = paramHead.Wal_ID;
                updateWallet.WHERE_Wal_VersionNo  = paramHead.Wal_VersionNo;
                updateWallet.Wal_AvailableBalance = paramHead.Wal_AvailableBalance - paramHead.RB_ReceiveTotalAmount;
                paramHead.Wal_AvailableBalance    = updateWallet.Wal_AvailableBalance ?? 0;

                #endregion

                #region 新增[钱包异动]

                addWalletTrans.WalT_ID          = System.Guid.NewGuid().ToString();
                addWalletTrans.WalT_Org_ID      = LoginInfoDAX.OrgID;
                addWalletTrans.WalT_Org_Name    = LoginInfoDAX.OrgShortName;
                addWalletTrans.WalT_Wal_ID      = paramHead.Wal_ID;
                addWalletTrans.WalT_Wal_No      = paramHead.Wal_No;
                addWalletTrans.WalT_Time        = BLLCom.GetCurStdDatetime();
                addWalletTrans.WalT_TypeCode    = WalTransTypeEnum.Code.XF;
                addWalletTrans.WalT_TypeName    = WalTransTypeEnum.Name.XF;
                addWalletTrans.WalT_Amount      = -paramHead.RB_ReceiveTotalAmount;
                addWalletTrans.WalT_BillNo      = paramHead.RB_No;
                addWalletTrans.WalT_IsValid     = true;
                addWalletTrans.WalT_CreatedBy   = LoginInfoDAX.UserName;
                addWalletTrans.WalT_CreatedTime = BLLCom.GetCurStdDatetime();
                addWalletTrans.WalT_UpdatedBy   = LoginInfoDAX.UserName;
                addWalletTrans.WalT_UpdatedTime = BLLCom.GetCurStdDatetime();

                #endregion
            }

            #endregion

            #endregion

            #region 带事务的保存
            try
            {
                DBManager.BeginTransaction(DBCONFIG.Coeus);

                #region 更新[收款单]

                bool updateReceiptBillResult = _bll.Save(updateReceiptBill);
                if (!updateReceiptBillResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_ReceiptBill });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }
                #endregion

                #region 更新[收款单明细]

                foreach (var loopReceiptBillDetail in updateReceiptBillDetailList)
                {
                    bool updateDetailResult = _bll.Update(loopReceiptBillDetail);
                    if (!updateDetailResult)
                    {
                        DBManager.RollBackTransaction(DBCONFIG.Coeus);
                        ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.APPROVE + SystemTableEnums.Name.FM_ReceiptBillDetail });
                        return(false);
                    }
                }

                #endregion

                #region 新增[应收单]

                bool addAccountReceivableBillResult = _bll.InsertByList <MDLFM_AccountReceivableBill, MDLFM_AccountReceivableBill>(addAccountReceivableBillList);
                if (!addAccountReceivableBillResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.ADD + SystemTableEnums.Name.FM_AccountReceivableBill });
                    return(false);
                }

                #endregion

                #region 新增[应付单明细]

                bool addAccountReceivableBillDetailResult = _bll.InsertByList <MDLFM_AccountReceivableBillDetail, MDLFM_AccountReceivableBillDetail>(addAccountReceivableBillDetailList);
                if (!addAccountReceivableBillDetailResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.ADD + SystemTableEnums.Name.FM_AccountReceivableBillDetail });
                    return(false);
                }

                #endregion

                #region  更新[钱包余额]和新增[钱包异动]

                if (paramHead.RB_ReceiveTypeName == TradeTypeEnum.Name.WALLET)
                {
                    #region 更新[钱包余额]

                    bool updateWalletResult = _bll.Save(updateWallet);
                    if (!updateWalletResult)
                    {
                        DBManager.RollBackTransaction(DBCONFIG.Coeus);
                        ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.UPDATE + SystemTableEnums.Name.EWM_Wallet });
                        LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                        return(false);
                    }

                    #endregion

                    #region 新增[钱包异动]

                    bool addWalletTransResult = _bll.Insert <MDLEWM_WalletTrans>(addWalletTrans);
                    if (!addWalletTransResult)
                    {
                        DBManager.RollBackTransaction(DBCONFIG.Coeus);
                        ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.ADD + SystemTableEnums.Name.EWM_WalletTrans });
                        return(false);
                    }

                    #endregion
                }

                #endregion

                DBManager.CommitTransaction(DBCONFIG.Coeus);
            }
            catch (Exception ex)
            {
                DBManager.RollBackTransaction(DBCONFIG.Coeus);
                ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.APPROVE, ex.Message });
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, MethodBase.GetCurrentMethod().ToString(),
                                            ex.Message, "", null);
                return(false);
            }

            #endregion

            //将最新数据回写给DetailDS
            CopyModel(updateReceiptBill, paramHead);
            return(true);
        }
        /// <summary>
        /// 保存数据
        /// </summary>
        /// <param name="paramPayable"></param>
        /// <param name="paramPayablePayConfirmList"></param>
        /// <returns></returns>
        public bool SavePayablePayConfirmData(MDLFM_PayBill paramPayable, List <PayablePayConfirmUIModel> paramPayablePayConfirmList)
        {
            var funcName = "SavePayableCashierConfirmData";

            LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null);

            #region 准备数据

            #region 变量定义

            //待保存的[付款单]
            MDLFM_PayBill insertPayBill = new MDLFM_PayBill();
            //待保存的[付款单明细]列表
            List <MDLFM_PayBillDetail> insertPayBillDetailList = new List <MDLFM_PayBillDetail>();
            //待更新的[应付单]列表
            List <MDLFM_AccountPayableBill> updateAccountPayableBillList = new List <MDLFM_AccountPayableBill>();
            //待更新的[应收单]列表
            List <MDLFM_AccountReceivableBill> updateAccountReceivableBillList = new List <MDLFM_AccountReceivableBill>();
            //待更新的[电子钱包]
            MDLEWM_Wallet updatewallet = new MDLEWM_Wallet();
            //待新增的[电子钱包异动]
            MDLEWM_WalletTrans insertwalletTrans = new MDLEWM_WalletTrans();

            #endregion

            #region 待保存的[付款单]

            insertPayBill.PB_ID           = Guid.NewGuid().ToString();
            insertPayBill.PB_No           = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.PB);
            insertPayBill.PB_Pay_Org_ID   = paramPayablePayConfirmList[0].BusinessOrgID;
            insertPayBill.PB_Pay_Org_Name = paramPayablePayConfirmList[0].BusinessOrgName;
            insertPayBill.PB_Date         = BLLCom.GetCurStdDatetime();

            insertPayBill.PB_RecObjectTypeCode = paramPayablePayConfirmList[0].ReceiveObjectTypeCode;
            insertPayBill.PB_RecObjectTypeName = paramPayablePayConfirmList[0].ReceiveObjectTypeName;
            insertPayBill.PB_RecObjectID       = paramPayablePayConfirmList[0].ReceiveObjectID;
            insertPayBill.PB_RecObjectName     = paramPayablePayConfirmList[0].ReceiveObjectName;

            insertPayBill.PB_PayableTotalAmount     = paramPayable.PB_PayableTotalAmount;
            insertPayBill.PB_RealPayableTotalAmount = paramPayable.PB_RealPayableTotalAmount;
            insertPayBill.PB_PayAccount             = paramPayable.PB_PayAccount;
            insertPayBill.PB_RecAccount             = paramPayable.PB_RecAccount;
            insertPayBill.PB_PayTypeName            = paramPayable.PB_PayTypeName;
            insertPayBill.PB_PayTypeCode            = paramPayable.PB_PayTypeCode;
            insertPayBill.PB_CertificateNo          = paramPayable.PB_CertificateNo;

            insertPayBill.PB_BusinessStatusName = ReceiptBillStatusEnum.Name.YWC;
            insertPayBill.PB_BusinessStatusCode = ReceiptBillStatusEnum.Code.YWC;
            insertPayBill.PB_ApprovalStatusName = ApprovalStatusEnum.Name.YSH;
            insertPayBill.PB_ApprovalStatusCode = ApprovalStatusEnum.Code.YSH;
            insertPayBill.PB_Remark             = paramPayable.PB_Remark;
            insertPayBill.PB_IsValid            = true;
            insertPayBill.PB_CreatedBy          = LoginInfoDAX.UserName;
            insertPayBill.PB_CreatedTime        = BLLCom.GetCurStdDatetime();
            insertPayBill.PB_UpdatedBy          = LoginInfoDAX.UserName;
            insertPayBill.PB_UpdatedTime        = BLLCom.GetCurStdDatetime();

            #endregion

            #region 待保存的[付款单明细]列表,待更新[应收单]或[应付单]列表

            foreach (var loopItem in paramPayablePayConfirmList)
            {
                if (loopItem.ThisPayAmount == 0 && loopItem.UnPayTotalAmount != 0)
                {
                    continue;
                }

                #region 待保存的[付款单明细]

                MDLFM_PayBillDetail insertPayBillDetail = new MDLFM_PayBillDetail()
                {
                    PBD_ID          = Guid.NewGuid().ToString(),
                    PBD_PB_ID       = insertPayBill.PB_ID,
                    PBD_PB_No       = insertPayBill.PB_No,
                    PBD_PayAmount   = loopItem.ThisPayAmount,
                    PBD_CreatedBy   = LoginInfoDAX.UserName,
                    PBD_CreatedTime = BLLCom.GetCurStdDatetime(),
                    PBD_UpdatedBy   = LoginInfoDAX.UserName,
                    PBD_UpdatedTime = BLLCom.GetCurStdDatetime(),
                };
                insertPayBillDetail.PBD_SrcBillNo = loopItem.APB_SourceBillNo == "" ? loopItem.APB_No : loopItem.APB_SourceBillNo;
                if (loopItem.APB_SourceTypeName == AccountPayableBillSourceTypeEnum.Name.SHYF)
                {
                    insertPayBillDetail.PBD_SourceTypeName = PayBillDetailSourceTypeEnum.Name.BZCG;
                    insertPayBillDetail.PBD_SourceTypeCode = PayBillDetailSourceTypeEnum.Code.BZCG;
                }
                else if (loopItem.APB_SourceTypeName == AccountPayableBillSourceTypeEnum.Name.CKYF)
                {
                    insertPayBillDetail.PBD_SourceTypeName = PayBillDetailSourceTypeEnum.Name.THSK;
                    insertPayBillDetail.PBD_SourceTypeCode = PayBillDetailSourceTypeEnum.Code.THSK;
                }
                else if (loopItem.APB_SourceTypeName == AccountPayableBillSourceTypeEnum.Name.SGCJ)
                {
                    insertPayBillDetail.PBD_SourceTypeName = PayBillDetailSourceTypeEnum.Name.SGFK;
                    insertPayBillDetail.PBD_SourceTypeCode = PayBillDetailSourceTypeEnum.Code.SGFK;
                }
                else if (loopItem.APB_SourceTypeName == AccountReceivableBillSourceTypeEnum.Name.XSYS)
                {
                    insertPayBillDetail.PBD_SourceTypeName = ReceiptBillDetailSourceTypeEnum.Name.XSSK;
                    insertPayBillDetail.PBD_SourceTypeCode = ReceiptBillDetailSourceTypeEnum.Code.XSSK;
                }
                else if (loopItem.APB_SourceTypeName == AccountReceivableBillSourceTypeEnum.Name.QTYS)
                {
                    insertPayBillDetail.PBD_SourceTypeName = ReceiptBillDetailSourceTypeEnum.Name.QTSK;
                    insertPayBillDetail.PBD_SourceTypeCode = ReceiptBillDetailSourceTypeEnum.Code.QTSK;
                }
                insertPayBillDetailList.Add(insertPayBillDetail);

                #endregion

                #region 待更新的[应付单]或[应收单]列表

                if (loopItem.IsBusinessSourceAccountPayableBill)
                {
                    #region 待更新的[应付单]列表

                    MDLFM_AccountPayableBill updateAccountPayableBill = new MDLFM_AccountPayableBill
                    {
                        APB_ID                   = loopItem.APB_ID,
                        APB_No                   = loopItem.APB_No,
                        APB_BillDirectCode       = loopItem.APB_BillDirectCode,
                        APB_BillDirectName       = loopItem.APB_BillDirectName,
                        APB_SourceTypeCode       = loopItem.APB_SourceTypeCode,
                        APB_SourceTypeName       = loopItem.APB_SourceTypeName,
                        APB_SourceBillNo         = loopItem.APB_SourceBillNo,
                        APB_Org_ID               = loopItem.APB_Org_ID,
                        APB_Org_Name             = loopItem.APB_Org_Name,
                        APB_AccountPayableAmount = loopItem.APB_AccountPayableAmount,
                        APB_ApprovalStatusCode   = loopItem.APB_ApprovalStatusCode,
                        APB_ApprovalStatusName   = loopItem.APB_ApprovalStatusName,
                        APB_CreatedBy            = loopItem.APB_CreatedBy,
                        APB_CreatedTime          = loopItem.APB_CreatedTime,
                        APB_UpdatedBy            = LoginInfoDAX.UserName,
                        APB_UpdatedTime          = BLLCom.GetCurStdDatetime(),
                        APB_VersionNo            = loopItem.APB_VersionNo,
                        WHERE_APB_ID             = loopItem.APB_ID,
                        WHERE_APB_VersionNo      = loopItem.APB_VersionNo
                    };
                    if (updateAccountPayableBill.APB_BillDirectName == BillDirectionEnum.Name.PLUS)
                    {
                        //已付金额
                        updateAccountPayableBill.APB_PaidAmount = (loopItem.APB_PaidAmount ?? 0) + Math.Abs(loopItem.ThisPayAmount ?? 0);
                    }
                    else
                    {
                        //已付金额
                        updateAccountPayableBill.APB_PaidAmount = (loopItem.APB_PaidAmount ?? 0) - Math.Abs(loopItem.ThisPayAmount ?? 0);
                    }
                    //未付金额
                    updateAccountPayableBill.APB_UnpaidAmount = (loopItem.APB_AccountPayableAmount ?? 0) - (updateAccountPayableBill.APB_PaidAmount ?? 0);

                    if (Math.Abs(updateAccountPayableBill.APB_PaidAmount ?? 0) >= Math.Abs(loopItem.APB_AccountPayableAmount ?? 0))
                    {
                        updateAccountPayableBill.APB_UnpaidAmount = 0;
                        //单据状态
                        updateAccountPayableBill.APB_BusinessStatusCode = AccountReceivableBillStatusEnum.Code.YWC;
                        updateAccountPayableBill.APB_BusinessStatusName = AccountReceivableBillStatusEnum.Name.YWC;
                    }
                    updateAccountPayableBillList.Add(updateAccountPayableBill);

                    #endregion
                }
                else
                {
                    #region 待更新的[应收单]列表

                    MDLFM_AccountReceivableBill updateAccountReceivableBill = new MDLFM_AccountReceivableBill
                    {
                        ARB_ID                      = loopItem.APB_ID,
                        ARB_No                      = loopItem.APB_No,
                        ARB_BillDirectCode          = loopItem.APB_BillDirectCode,
                        ARB_BillDirectName          = loopItem.APB_BillDirectName,
                        ARB_SourceTypeCode          = loopItem.APB_SourceTypeCode,
                        ARB_SourceTypeName          = loopItem.APB_SourceTypeName,
                        ARB_SrcBillNo               = loopItem.APB_SourceBillNo,
                        ARB_Org_ID                  = loopItem.APB_Org_ID,
                        ARB_Org_Name                = loopItem.APB_Org_Name,
                        ARB_AccountReceivableAmount = loopItem.APB_AccountPayableAmount,
                        ARB_ApprovalStatusCode      = loopItem.APB_ApprovalStatusCode,
                        ARB_ApprovalStatusName      = loopItem.APB_ApprovalStatusName,
                        ARB_CreatedBy               = loopItem.APB_CreatedBy,
                        ARB_CreatedTime             = loopItem.APB_CreatedTime,
                        ARB_UpdatedBy               = LoginInfoDAX.UserName,
                        ARB_UpdatedTime             = BLLCom.GetCurStdDatetime(),
                        ARB_VersionNo               = loopItem.APB_VersionNo,
                        WHERE_ARB_ID                = loopItem.APB_ID,
                        WHERE_ARB_VersionNo         = loopItem.APB_VersionNo
                    };
                    if (updateAccountReceivableBill.ARB_BillDirectName == BillDirectionEnum.Name.PLUS)
                    {
                        //已收金额
                        updateAccountReceivableBill.ARB_ReceivedAmount = (loopItem.APB_PaidAmount ?? 0) + Math.Abs(loopItem.ThisPayAmount ?? 0);
                    }
                    else
                    {
                        //已收金额
                        updateAccountReceivableBill.ARB_ReceivedAmount = (loopItem.APB_PaidAmount ?? 0) - Math.Abs(loopItem.ThisPayAmount ?? 0);
                    }
                    //未收金额
                    updateAccountReceivableBill.ARB_UnReceiveAmount = (loopItem.APB_AccountPayableAmount ?? 0) - (updateAccountReceivableBill.ARB_ReceivedAmount ?? 0);

                    if (Math.Abs(updateAccountReceivableBill.ARB_ReceivedAmount ?? 0) >= Math.Abs(loopItem.APB_AccountPayableAmount ?? 0))
                    {
                        updateAccountReceivableBill.ARB_UnReceiveAmount = 0;
                        //单据状态
                        updateAccountReceivableBill.ARB_BusinessStatusCode = AccountReceivableBillStatusEnum.Code.YWC;
                        updateAccountReceivableBill.ARB_BusinessStatusName = AccountReceivableBillStatusEnum.Name.YWC;
                    }
                    updateAccountReceivableBillList.Add(updateAccountReceivableBill);

                    #endregion
                }

                #endregion
            }

            #endregion

            #region 更新的[电子钱包]、新增的[电子钱包异动]

            if (paramPayable.PB_PayTypeName == TradeTypeEnum.Name.WALLET && (!string.IsNullOrEmpty(paramPayablePayConfirmList[0].Wal_ID)))
            {
                #region 待更新的[电子钱包]

                updatewallet.WHERE_Wal_ID         = paramPayablePayConfirmList[0].Wal_ID;
                updatewallet.WHERE_Wal_VersionNo  = paramPayablePayConfirmList[0].Wal_VersionNo;
                updatewallet.Wal_AvailableBalance = paramPayablePayConfirmList[0].Wal_AvailableBalance +
                                                    paramPayable.PB_RealPayableTotalAmount;
                updatewallet.Wal_VersionNo = paramPayablePayConfirmList[0].Wal_VersionNo + 1;

                #endregion

                #region 待新增的[电子钱包异动]

                insertwalletTrans.WalT_ID       = System.Guid.NewGuid().ToString();
                insertwalletTrans.WalT_Org_ID   = LoginInfoDAX.OrgID;
                insertwalletTrans.WalT_Org_Name = LoginInfoDAX.OrgShortName;
                insertwalletTrans.WalT_Wal_ID   = paramPayablePayConfirmList[0].Wal_ID;
                insertwalletTrans.WalT_Wal_No   = paramPayablePayConfirmList[0].Wal_No;
                insertwalletTrans.WalT_Time     = BLLCom.GetCurStdDatetime();
                insertwalletTrans.WalT_TypeCode = WalTransTypeEnum.Code.XF;
                insertwalletTrans.WalT_TypeName = WalTransTypeEnum.Name.XF;

                insertwalletTrans.WalT_Amount      = -paramPayable.PB_RealPayableTotalAmount;;
                insertwalletTrans.WalT_BillNo      = insertPayBill.PB_No;
                insertwalletTrans.WalT_IsValid     = true;
                insertwalletTrans.WalT_CreatedBy   = LoginInfoDAX.UserName;
                insertwalletTrans.WalT_CreatedTime = BLLCom.GetCurStdDatetime();
                insertwalletTrans.WalT_UpdatedBy   = LoginInfoDAX.UserName;
                insertwalletTrans.WalT_UpdatedTime = BLLCom.GetCurStdDatetime();

                #endregion
            }

            #endregion

            #endregion

            #region 带事务的保存

            try
            {
                DBManager.BeginTransaction(DBCONFIG.Coeus);

                #region 保存[付款单明细]

                bool insertPayBillResult = _bll.Insert(insertPayBill);
                if (!insertPayBillResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_PayBillDetail });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }

                #endregion

                #region 保存[付款单明细]列表

                if (insertPayBillDetailList.Count > 0)
                {
                    bool insertPayBillDetailResult = _bll.InsertByList <MDLFM_PayBillDetail, MDLFM_PayBillDetail>(insertPayBillDetailList);
                    if (!insertPayBillDetailResult)
                    {
                        DBManager.RollBackTransaction(DBCONFIG.Coeus);
                        ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_PayBillDetail });
                        LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                        return(false);
                    }
                }
                #endregion

                #region 更新[应付单]列表

                if (updateAccountPayableBillList.Count > 0)
                {
                    foreach (var loopAccountPayableBill in updateAccountPayableBillList)
                    {
                        bool updateAccountReceivableBill = _bll.Update(loopAccountPayableBill);
                        if (!updateAccountReceivableBill)
                        {
                            DBManager.RollBackTransaction(DBCONFIG.Coeus);
                            ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_AccountPayableBill });
                            LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                            return(false);
                        }
                    }
                }

                #endregion

                #region 更新[应收单]列表

                if (updateAccountReceivableBillList.Count > 0)
                {
                    foreach (var loopAccountReceivableBill in updateAccountReceivableBillList)
                    {
                        bool updateAccountReceivableBill = _bll.Update(loopAccountReceivableBill);
                        if (!updateAccountReceivableBill)
                        {
                            DBManager.RollBackTransaction(DBCONFIG.Coeus);
                            ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_AccountReceivableBill });
                            LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                            return(false);
                        }
                    }
                }

                #endregion

                #region 更新的[电子钱包]、新增的[电子钱包异动]

                if (paramPayable.PB_PayTypeName == TradeTypeEnum.Name.WALLET && (!string.IsNullOrEmpty(paramPayablePayConfirmList[0].Wal_ID)))
                {
                    #region 更新的[电子钱包]

                    bool updatewalletResult = _bll.Update(updatewallet);
                    if (!updatewalletResult)
                    {
                        DBManager.RollBackTransaction(DBCONFIG.Coeus);
                        ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.UPDATE + SystemTableEnums.Name.EWM_Wallet });
                        LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                        return(false);
                    }

                    #endregion

                    #region 待新增的[电子钱包异动]

                    bool insertwalletTranslResult = _bll.Insert(insertwalletTrans);
                    if (!insertwalletTranslResult)
                    {
                        DBManager.RollBackTransaction(DBCONFIG.Coeus);
                        ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.ADD + SystemTableEnums.Name.EWM_WalletTrans });
                        LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                        return(false);
                    }

                    #endregion
                }

                #endregion

                DBManager.CommitTransaction(DBCONFIG.Coeus);
            }
            catch (Exception ex)
            {
                DBManager.RollBackTransaction(DBCONFIG.Coeus);
                ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message });
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null);
                return(false);
            }

            #endregion

            return(true);
        }
Example #5
0
        /// <summary>
        /// 提现
        /// </summary>
        /// <param name="paramModel">UIModel</param>
        /// <returns></returns>
        public bool SaveDetailDS(WalletWithdrawalUIModel paramModel)
        {
            var funcName = "SaveDetailDS";

            LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null);

            #region 准备数据

            //将UIModel转为TBModel
            var argsWallet = CopyModel <MDLEWM_Wallet>(paramModel);
            //待保存的钱包异动日志
            MDLEWM_WalletTrans newWalletTrans = new MDLEWM_WalletTrans();

            #region 更新[电子钱包]
            argsWallet.Wal_UpdatedBy       = LoginInfoDAX.UserName;
            argsWallet.Wal_UpdatedTime     = BLLCom.GetCurStdDatetime();
            argsWallet.WHERE_Wal_ID        = argsWallet.Wal_ID;
            argsWallet.WHERE_Wal_VersionNo = argsWallet.Wal_VersionNo;
            #endregion

            if (paramModel.ThisWithdrawalAmount > 0)
            {
                //生成钱包异动日志
                newWalletTrans = BLLCom.CreateWalletTrans(new MDLEWM_WalletTrans()
                {
                    WalT_Org_ID   = LoginInfoDAX.OrgID,
                    WalT_Org_Name = LoginInfoDAX.OrgShortName,
                    WalT_Wal_ID   = argsWallet.Wal_ID,
                    WalT_Wal_No   = argsWallet.Wal_No,
                    //异动类型为{提现}
                    WalT_TypeName = WalTransTypeEnum.Name.TX,
                    WalT_TypeCode = WalTransTypeEnum.Code.TX,
                    //异动金额
                    WalT_Amount      = -paramModel.ThisWithdrawalAmount,
                    WalT_ChannelName = LoginTerminalEnum.Name.PC,
                    WalT_ChannelCode = LoginTerminalEnum.Code.PC,
                    WalT_Remark      = argsWallet.Wal_Remark,
                });
            }
            #endregion

            #region 带事务的保存

            try
            {
                DBManager.BeginTransaction(DBCONFIG.Coeus);

                #region 保存[电子钱包]

                bool saveWalletResult = _bll.Save(argsWallet);
                if (!saveWalletResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.RECHARGE + SystemTableEnums.Name.EWM_Wallet });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }

                #endregion

                #region 保存[电子钱包异动]

                bool insertWalletTransResult = _bll.Insert(newWalletTrans);
                if (!insertWalletTransResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.EWM_WalletTrans });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }
                #endregion

                DBManager.CommitTransaction(DBCONFIG.Coeus);
            }
            catch (Exception ex)
            {
                DBManager.RollBackTransaction(DBCONFIG.Coeus);
                ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.RECHARGE, ex.Message });
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null);
                return(false);
            }

            #endregion

            //将最新数据回写给DetailDS
            CopyModel(argsWallet, paramModel);

            return(true);
        }
Example #6
0
        /// <summary>
        /// 钱包销户
        /// </summary>
        /// <param name="paramModel">待销户的钱包</param>
        /// <returns></returns>
        public bool CloseAccountDetailDS(WalletQueryAndOperateUIModel paramModel)
        {
            var funcName = "CloseAccountDetailDS";

            LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null);

            #region 准备数据

            //将UIModel转为TBModel
            var argsWallet = CopyModel <MDLEWM_Wallet>(paramModel);
            //待保存的钱包异动日志
            MDLEWM_WalletTrans newWalletTrans = new MDLEWM_WalletTrans();

            #region 更新[电子钱包]

            argsWallet.Wal_AvailableBalance = 0;
            argsWallet.Wal_FreezingBalance  = 0;
            argsWallet.Wal_IneffectiveTime  = BLLCom.GetCurStdDatetime();
            argsWallet.Wal_StatusName       = WalletStatusEnum.Name.YXH;
            argsWallet.Wal_StatusCode       = WalletStatusEnum.Code.YXH;
            argsWallet.Wal_IsValid          = false;;
            argsWallet.Wal_UpdatedBy        = LoginInfoDAX.UserName;
            argsWallet.Wal_UpdatedTime      = BLLCom.GetCurStdDatetime();
            argsWallet.WHERE_Wal_ID         = argsWallet.Wal_ID;
            argsWallet.WHERE_Wal_VersionNo  = argsWallet.Wal_VersionNo;
            #endregion

            #region 生成钱包异动日志
            newWalletTrans = BLLCom.CreateWalletTrans(new MDLEWM_WalletTrans
            {
                WalT_Org_ID   = LoginInfoDAX.OrgID,
                WalT_Org_Name = LoginInfoDAX.OrgShortName,
                WalT_Wal_ID   = argsWallet.Wal_ID,
                WalT_Wal_No   = argsWallet.Wal_No,
                //异动类型为{销户}
                WalT_TypeName    = WalTransTypeEnum.Name.XH,
                WalT_TypeCode    = WalTransTypeEnum.Code.XH,
                WalT_ChannelName = LoginTerminalEnum.Name.PC,
                WalT_ChannelCode = LoginTerminalEnum.Code.PC,
            });
            #endregion

            #endregion

            #region 带事务的保存

            try
            {
                DBManager.BeginTransaction(DBCONFIG.Coeus);

                #region 保存[电子钱包]

                bool saveWalletResult = _bll.Save(argsWallet);
                if (!saveWalletResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.RECHARGE + SystemTableEnums.Name.EWM_Wallet });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }

                #endregion

                #region 保存[电子钱包异动]

                bool insertWalletTransResult = _bll.Insert(newWalletTrans);
                if (!insertWalletTransResult)
                {
                    DBManager.RollBackTransaction(DBCONFIG.Coeus);
                    ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.EWM_WalletTrans });
                    LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null);
                    return(false);
                }
                #endregion

                DBManager.CommitTransaction(DBCONFIG.Coeus);
            }
            catch (Exception ex)
            {
                DBManager.RollBackTransaction(DBCONFIG.Coeus);
                ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.RECHARGE, ex.Message });
                LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null);
                return(false);
            }

            #endregion

            //将最新数据回写给DetailDS
            CopyModel(argsWallet, paramModel);

            return(true);
        }