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