From e4ef5d7d256a64c082ffe58d54722c007125a5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=B9=E6=B5=B7?= Date: Fri, 18 Apr 2025 14:12:26 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DBModels/ClientCashInCashOut.cs | 4 +- .../BLL/EodSettlement/ClientBalanceUtility.cs | 6 +- .../RealTimeClientBanlanceService.cs | 9 +- YLErpDAL/Model/clientLinq.cs | 4 + .../ClientCashInCashOutDataService.cs | 97 ++++++++---------- .../SettlementModule/EodClientBalanceCalc.cs | 19 ++++ .../SettlementModule/EodTaskRunner.cs | 2 + .../SettlementReportModule/FundReportModel.cs | 12 +++ .../SettlementReportFotShanXiService.cs | 1 + .../Modules/RiskModule/QuotaMonitorService.cs | 9 +- .../Modules/SwapModule/SwapDealService.cs | 8 +- .../SwapModule/SwapEodPositionService.cs | 9 +- .../Modules/SwapModule/SwapTradeService.cs | 1 + .../App_Docs/导入模板/阶梯费率导入模板.xlsx | Bin 8910 -> 8844 bytes YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx | Bin 19507 -> 19451 bytes YLErpWeb/App_Docs/导出模板/资金监控模板1.xlsx | Bin 11348 -> 11340 bytes .../App_Docs/导出模板/阶梯费率导出模板.xlsx | Bin 10165 -> 10074 bytes YLErpWeb/Controllers/clientController.cs | 5 +- YLErpWeb/Views/SwapRate/Detail.cshtml | 22 ---- YLErpWeb/Views/SwapRate/Edit.cshtml | 22 ---- .../ClientBalanceReportWildcard.cshtml | 5 +- .../clientbalance/TradeMarketReport.cshtml | 16 +-- .../Scripts/app/client/clientRiskMonitor.js | 18 ++-- .../Scripts/app/client/entryexitEdit.js | 6 +- .../Scripts/app/client/tradeMarketReport.js | 4 +- 25 files changed, 134 insertions(+), 145 deletions(-) diff --git a/Framework/YLErp.Core/DBModels/ClientCashInCashOut.cs b/Framework/YLErp.Core/DBModels/ClientCashInCashOut.cs index 93f0bc8b..780b0096 100644 --- a/Framework/YLErp.Core/DBModels/ClientCashInCashOut.cs +++ b/Framework/YLErp.Core/DBModels/ClientCashInCashOut.cs @@ -228,7 +228,9 @@ namespace YLErp.DBModels public static string 应收 = "应收"; public static List 到账类型 = new List { 已到帐, 应到帐 }; - public static List outCashCals= new List { 未确认, 同意 }; + public static List outCashCals = new List { 未确认, 同意, 已确认, 已结算 }; + public static List calcCashs = new List { 未确认, 同意 }; + public static List cashStateChecks = new List { "出金", "入金" }; public const string 系统操作_期权费 = "系统操作-期权费"; public const string 系统操作_行权费 = "系统操作-行权费"; diff --git a/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs b/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs index 4e5fcd9f..4d27ed92 100644 --- a/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs +++ b/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs @@ -353,12 +353,12 @@ namespace YLErp.BLL.EodSettlement balance.MarginBalance = balance.AmountFund - balance.MySideMargin; // 可用资金 = 期末结存 - 追保账户余额 - 初始保证金 balance.AvailableAmount = balance.MarginBalance - (balance.VmInFundSum - balance.VmOutFundSum); - // 是否追保=履约保证金比例<维持保证金率 - balance.NeedAddMargin = balance.SwapMarketAmountPercent < (decimal)marginRate.MaintenanceRate; + // 是否追保=盯市金额小于维持保证金额 + balance.NeedAddMargin = balance.SwapMarketAmount < balance.MaintenanceMargin; // 追保金额=初始保证金金额-盯市金额 balance.MarginByPayableMarginTotal = balance.NeedAddMargin ? (balance.MySideMargin - balance.SwapMarketAmount):0; // 可取资金=期末结存-min(持仓盈亏,0)-初始保证金 - balance.DesirableFund = balance.MarginBalance - Math.Min(balance.RoundedPositionPnl, 0); + balance.DesirableFund = balance.MarginBalance + Math.Min(balance.RoundedPositionPnl, 0); } } diff --git a/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs b/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs index 1ac1479b..63b18f1a 100644 --- a/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs +++ b/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs @@ -275,12 +275,12 @@ namespace YLErp.BLL.Eod item.MarginBalance = item.AmountFund - item.MySideMargin; // 可用资金 = 期末结存 - 追保账户余额 - 初始保证金 item.AvailableAmount = item.MarginBalance - (item.VmInFundSum - item.VmOutFundSum) - item.FrozenMarginMoney; - // 是否追保=履约保证金比例<维持保证金率 - item.NeedAddMargin = item.SwapMarketAmountPercent < (decimal)marginRate.MaintenanceRate; + // 是否追保=盯市金额小于维持保证金额 + item.NeedAddMargin = item.SwapMarketAmount < item.MaintenanceMargin; // 追保金额=初始保证金金额-盯市金额 item.MarginByPayableMarginTotal = item.NeedAddMargin ? (item.MySideMargin - item.SwapMarketAmount) : 0; // 可取资金=期末结存-min(持仓盈亏,0)-初始保证金 - item.DesirableFund = item.MarginBalance - Math.Min(item.RoundedPositionPnl, 0); + item.DesirableFund = item.MarginBalance + Math.Min(item.RoundedPositionPnl, 0); } return _clientBalanceDic.Values; @@ -1071,8 +1071,7 @@ namespace YLErp.BLL.Eod from td in trade.DefaultIfEmpty() where t.HappenDate >= lastSettletDateAddOne && t.HappenDate < newValuedate && t.ValidState != "InValid" - //&& (t.State == ClientCashInCashOut.已结算 || t.State == ClientCashInCashOut.已确认||(t.Direction=="出金"&& ClientCashInCashOut.outCashCals.Contains(t.State))) - && (t.State == ClientCashInCashOut.已结算 || t.State == ClientCashInCashOut.已确认) + && (t.State == ClientCashInCashOut.已结算 || t.State == ClientCashInCashOut.已确认 || (t.Direction == "出金" && ClientCashInCashOut.outCashCals.Contains(t.State))) && clientIds.Contains(t.ClientId.Value) && t.Money != null && td.TradeType != "收益互换" diff --git a/YLErpDAL/Model/clientLinq.cs b/YLErpDAL/Model/clientLinq.cs index 360fbf9c..8c304941 100644 --- a/YLErpDAL/Model/clientLinq.cs +++ b/YLErpDAL/Model/clientLinq.cs @@ -589,5 +589,9 @@ namespace YLErp.Model /// 是否需要追保 /// public bool NeedAddMargin { get; set; } + /// + /// 期初结存 + /// + public double LastDayRemainFund { get; set; } } } diff --git a/YLErpDAL/Modules/ClientModule/ClientCashInCashOutDataService.cs b/YLErpDAL/Modules/ClientModule/ClientCashInCashOutDataService.cs index e518ba56..82aaba0d 100644 --- a/YLErpDAL/Modules/ClientModule/ClientCashInCashOutDataService.cs +++ b/YLErpDAL/Modules/ClientModule/ClientCashInCashOutDataService.cs @@ -9,6 +9,7 @@ using YLErp.BLL.EodSettlement; using YLErp.Commons; using YLErp.Configuration; using YLErp.Core.Helpers; +using YLErp.DBModels.Enums; using YLErp.Helpers; using YLErp.Model; using YLErp.Model.Enum; @@ -648,12 +649,17 @@ namespace YLErp.Modules.ClientModule #region 出金申请时进行验资 - if ((("出金".Equals(r.Direction) && PS.Config.Company != Configuration.CompanyEnum.中金) || ("应付".Equals(r.Direction) && ClientCashInCashOut.人工操作_预付金.Equals(r.Action))) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1 && PS.Config.Company != Configuration.CompanyEnum.中金) + if ("出金".Equals(r.Direction) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1) { //查看当前客户可用资金是否符合出金条件 var clientbalance = ClientBalanceUtility.GetClientBanlances(new List { r.ClientId.Value }, DateTime.MinValue, DateTime.Now.Date).FirstOrDefault(); + // 如果余额为 null,则视为无可用资金 + if (clientbalance == null) + { + clientbalance = new YLErp.Models.ClientSettleBalance(); + } //当日可取现金 - var availableFund = clientbalance == null ? 0 : clientbalance.DesirableFund; + var availableFund = clientbalance.DesirableFund; //对于0.999999999情况的数据做下处理 var realAvailableFund = Math.Round((availableFund + (originalMoney ?? 0.0)) * Math.Pow(10, 8)) / Math.Pow(10, 8); @@ -664,6 +670,24 @@ namespace YLErp.Modules.ClientModule (Math.Floor(realAvailableFund * 100) / 100).ToString("0.00") + ";"; throw new ServiceException(msg); } + if (r.Money <= clientbalance.VmFundSum) + { + // 出金金额小于等于 追保账户金额 + r.cash_type = CashTypeEnum.追保账户.ToString(); + } + else + { + // 出金金额大于 追保账户金额,首先处理 VM 部分 + r.cash_type = CashTypeEnum.追保账户.ToString(); + var newMoney = r.Money - clientbalance.VmFundSum; + r.Money = clientbalance.VmFundSum; + + var newR = r.Clone(); + newR.id = 0; + newR.Money = newMoney; + newR.cash_type = CashTypeEnum.初保账户.ToString(); + DbContext.ClientCashInCashOut.Add(newR); + } } #endregion @@ -679,29 +703,7 @@ namespace YLErp.Modules.ClientModule if (r.State != "未确认" && changecashs.Count > 0 && !(changecashs.Count == 1 && changecashs[0][0] == "Comments")) { - //功能先禁掉了 - //if (DbContext.clientcashincashout_update.Where(x => x.ClientcashincashoutId == r.id && x.State == "修改待确认" && x.ValidState != "InValid").Any()) - //{ - // var updateInValid = DbContext.clientcashincashout_update.Where(x => x.ClientcashincashoutId == r.id && x.State == "修改待确认" && x.ValidState != "InValid").ToList(); - // updateInValid.ForEach(x => x.ValidState = "InValid"); - //} - //var clientcashincashout_Update = new clientcashincashout_update - //{ - // OptId = UserId, - // OptName = UserName, - // OptDate = DateTime.Now, - // ClientcashincashoutId = r.id, - // OldMoney = r.Money ?? 0, - // NewMoney = req.Money ?? 0, - // OldDirection = r.Direction, - // NewDirection = req.Direction ?? r.Direction, - // OldHappenDate = r.HappenDate, - // NewHappenDate = req.HappenDate ?? r.HappenDate, - // ValidState = "Valid", - // State = "修改待确认" - //}; - //DbContext.clientcashincashout_update.Add(clientcashincashout_Update); - //ClientCashLog(r.id, "修改资金", comment, req.Explain); + } else { @@ -912,35 +914,26 @@ namespace YLErp.Modules.ClientModule } } } - else if ((("出金".Equals(e.Direction) && PS.Config.Company != Configuration.CompanyEnum.中金) || ("应付".Equals(e.Direction) && ClientCashInCashOut.人工操作_预付金.Equals(e.Action))) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1 && PS.Config.Company != Configuration.CompanyEnum.中金) - { - //查看当前客户可用资金是否符合出金条件 - var clientbalance = ClientBalanceUtility.GetClientBanlances(new List { e.ClientId.Value }, DateTime.MinValue, DateTime.Now.Date).FirstOrDefault(); - //当日可取现金 - var availableFund = clientbalance == null ? 0 : clientbalance.DesirableFund; + //else if ((("出金".Equals(e.Direction) && PS.Config.Company != Configuration.CompanyEnum.中金) || ("应付".Equals(e.Direction) && ClientCashInCashOut.人工操作_预付金.Equals(e.Action))) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1 && PS.Config.Company != Configuration.CompanyEnum.中金) + //{ + // //查看当前客户可用资金是否符合出金条件 + // var clientbalance = ClientBalanceUtility.GetClientBanlances(new List { e.ClientId.Value }, DateTime.MinValue, DateTime.Now.Date).FirstOrDefault(); + // //当日可取现金 + // var availableFund = clientbalance == null ? 0 : clientbalance.DesirableFund; - //对于0.999999999情况的数据做下处理 - var realAvailableFund = Math.Round((availableFund + (e.Money??0)) * Math.Pow(10, 8)) / Math.Pow(10, 8); - //如果当前出金金额大于可用资金(不扣除冻结出金部分)则抛出错误 - if (Math.Abs(e.Money ?? 0) > realAvailableFund) - { - if ("出金".Equals(e.Direction)) - { - throw new ServiceException($"部分确认错误 客户:{e.ClientName},出金:{e.Money},实际可取出资金:{realAvailableFund:0.00};"); - } - throw new ServiceException($"部分确认错误,客户:{e.ClientName},应付预付金:{Math.Abs(e.Money ?? 0)},实际可取出资金:{realAvailableFund:0.00};"); - } + // //对于0.999999999情况的数据做下处理 + // var realAvailableFund = Math.Round((availableFund + (e.Money??0)) * Math.Pow(10, 8)) / Math.Pow(10, 8); + // //如果当前出金金额大于可用资金(不扣除冻结出金部分)则抛出错误 + // if (Math.Abs(e.Money ?? 0) > realAvailableFund) + // { + // if ("出金".Equals(e.Direction)) + // { + // throw new ServiceException($"部分确认错误 客户:{e.ClientName},出金:{e.Money},实际可取出资金:{realAvailableFund:0.00};"); + // } + // throw new ServiceException($"部分确认错误,客户:{e.ClientName},应付预付金:{Math.Abs(e.Money ?? 0)},实际可取出资金:{realAvailableFund:0.00};"); + // } - } - if (PS.Config.Company == Configuration.CompanyEnum.中金) - { - - if ("出金".Equals(e.Direction) && !CheckClientCashOut(e.ClientId ?? 0, Math.Abs(e.Money ?? 0), e.CurrencyCode)) - { - throw new ServiceException($"{e.ClientName}币种{e.CurrencyCode}的出金金额不能大于客户账户余额"); - } - - } + //} return true; } diff --git a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs index dd036bd0..256078f2 100644 --- a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs +++ b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs @@ -1303,6 +1303,25 @@ namespace YLErp.Modules.EodModule.SettlementModule return true; } + + /// + /// 客户资金未确认状态检查 + /// + public void ClientCashInCashOutCheck() + { + var balanceDate = _context.SettleDate; + var reqClientIds = _context.Request.ClientIds; + var newValuedate = balanceDate.AddDays(1); + var cashInCashOuts = DbContext.ClientCashInCashOut.Where(x => x.HappenDate >= balanceDate && x.HappenDate < newValuedate && x.ValidState != ConsGlobal.InValid && ClientCashInCashOut.calcCashs.Contains(x.State) && ClientCashInCashOut.cashStateChecks.Contains(x.Direction)).AsNoTracking().ToList(); + if (reqClientIds != null && reqClientIds.Any()) + { + cashInCashOuts = cashInCashOuts.Where(x => reqClientIds.Contains(x.ClientId ?? 0)).ToList(); + } + if (cashInCashOuts.Any()) + { + _context.RaiseError("客户资金结算", $"{balanceDate:yyyy年MM月dd日}存在未确认的资金,请先将资金确认后再操作"); + } + } private void AddToFund(Dictionary fundDictionary, string currencyCode, double amount) { if (fundDictionary.ContainsKey(currencyCode)) diff --git a/YLErpDAL/Modules/EodModule/SettlementModule/EodTaskRunner.cs b/YLErpDAL/Modules/EodModule/SettlementModule/EodTaskRunner.cs index c3e49995..8aff5480 100644 --- a/YLErpDAL/Modules/EodModule/SettlementModule/EodTaskRunner.cs +++ b/YLErpDAL/Modules/EodModule/SettlementModule/EodTaskRunner.cs @@ -503,6 +503,8 @@ where {nameof(t.TaskStartTime)}>'{startDateStr}' and {nameof(t.TaskState)}={(int SetTaskStep("为处于节假日的交易标的复制上日收盘价"); new EodCopyPreSettlePrice(_context).Execute(); } + SetTaskStep("检查标的出入金状态"); + new EodClientBalanceCalc(_context).ClientCashInCashOutCheck(); SetTaskStep("检查标的结算价格缺失"); new EodCheckSettlePrice(_context).Execute();//t diff --git a/YLErpDAL/Modules/ReportModule/SettlementReportModule/FundReportModel.cs b/YLErpDAL/Modules/ReportModule/SettlementReportModule/FundReportModel.cs index b5b99fee..a24c42a6 100644 --- a/YLErpDAL/Modules/ReportModule/SettlementReportModule/FundReportModel.cs +++ b/YLErpDAL/Modules/ReportModule/SettlementReportModule/FundReportModel.cs @@ -42,6 +42,18 @@ namespace YLErp.Modules.ReportModule } } /// + /// 维持保证金金额 + /// + public double? MaintenanceMargin { get; set; } + + public string MaintenanceMarginString + { + get + { + return ((MaintenanceMargin == null || MaintenanceMargin == -0) ? 0 : MaintenanceMargin.Value).ToString("0.00"); + } + } + /// /// 初保账户 /// public double? NetFundAll { get; set; } diff --git a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs index a6411295..5946909d 100644 --- a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs +++ b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs @@ -332,6 +332,7 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule NetFundAll = clientBalance?.NetFundAll, SwapMarketAmount= clientBalance?.SwapMarketAmount, VmFundSum= clientBalance?.VmFundSum, + MaintenanceMargin=clientBalance?.MaintenanceMargin, }; return FundReportModel; } diff --git a/YLErpDAL/Modules/RiskModule/QuotaMonitorService.cs b/YLErpDAL/Modules/RiskModule/QuotaMonitorService.cs index 3eda8b75..6109aa61 100644 --- a/YLErpDAL/Modules/RiskModule/QuotaMonitorService.cs +++ b/YLErpDAL/Modules/RiskModule/QuotaMonitorService.cs @@ -4087,10 +4087,6 @@ namespace YLErp.Modules.RiskModule { precheckQuotaSettingList = precheckQuotaSettingList.Where(x => quotaIndexs.Contains(x.QuotaIndex)).ToList(); } - if (precheckQuotaSettingList.Count == 0) - { - return clientRiskCheckResps; - } var client = DataCacheProvider.GetClientDataSource().GetData(clientRiskCheckReq.clientId); if (client == null) { @@ -4119,12 +4115,15 @@ namespace YLErp.Modules.RiskModule { throw new ServiceException("适当性评估已经过期,只有在适当性有效期内才可以新开仓"); } - } else { return clientRiskCheckResps; //平仓不过风控 } + if (precheckQuotaSettingList.Count == 0) + { + return clientRiskCheckResps; + } foreach (var settingItem in precheckQuotaSettingList) { var clientRiskCheckItem = CreateClientRiskCheckItem(settingItem); diff --git a/YLErpDAL/Modules/SwapModule/SwapDealService.cs b/YLErpDAL/Modules/SwapModule/SwapDealService.cs index 6355bf19..8ac87b9a 100644 --- a/YLErpDAL/Modules/SwapModule/SwapDealService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapDealService.cs @@ -819,7 +819,7 @@ namespace YLErp.Modules.SwapModule /// /// /// - public void AuotoSwapUnwind(int tradeid, decimal unwindPrice, decimal unwindPriceFee, decimal unwindNetFee, decimal unwindNet, DateTime valueDate, decimal unwindQty, decimal mergeQty, decimal penddingFee) + public void AuotoSwapUnwind(int tradeid, decimal unwindPrice, decimal unwindPriceFee, decimal unwindNetFee, decimal unwindNet, DateTime valueDate, decimal unwindQty) { unwindPriceFee = decimal.Parse(unwindPriceFee.ToString("F10")); var td = DbContext.trade.Find(tradeid); @@ -884,10 +884,10 @@ namespace YLErp.Modules.SwapModule floatEvent.TradingAmountNetFeeAvg = unwindNetFee; floatEvent.TradingAmountNetAvg = unwindNet; floatEvent.TradingFeePending = position.PosiTradingFeePending * unwindData.ClosePercent; - var mergeClosePercent = mergeQty == 0 ? 0 : unwindQty / mergeQty; - floatEvent.TradingFee = penddingFee * mergeClosePercent; + floatEvent.TradingFeePending = Math.Round(floatEvent.TradingFeePending, 2, MidpointRounding.AwayFromZero); + floatEvent.TradingFee = floatEvent.TradingFeePending; floatEvent.MarkClosePnl = (unwindPrice - position.PosiGrossPrice) * unwindQty * floatRatio * longRatio; - floatEvent.MarkClosePnl = Math.Round(floatEvent.MarkClosePnl + (floatEvent.TradingFee * floatRatio * -1), ConsGlobal.MoneyRound, MidpointRounding.AwayFromZero); + floatEvent.MarkClosePnl = Math.Round(floatEvent.MarkClosePnl + (floatEvent.TradingFeePending*2 * floatRatio * -1), ConsGlobal.MoneyRound, MidpointRounding.AwayFromZero); floatEvent.TradingAmount = unwindPrice * floatEvent.Quantity * floatEvent.ContractSize; floatEvent.OptLog = "流水自动"; floatEvent.ClientId = td.ClientId; diff --git a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs index 6af4a5e0..531160cb 100644 --- a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs @@ -301,7 +301,7 @@ namespace YLErp.Modules.SwapModule var unwindEvents = flowEvents.Where(x => x.PositionId == posi.id).ToList();//当前日平仓信息 var realPosition = realPosiList.FirstOrDefault(s => s.PositionId == posi.id); eod_swap_position eodPosi = new eod_swap_position(); - if (eodPosition == null || td.TradeDate == settleDate) + if (eodPosition == null) { eodPosi = SaveCurrentEodInitalPosi(posi, td, settleDate, preSettleDate, unwindEvents); } @@ -1259,19 +1259,18 @@ namespace YLErp.Modules.SwapModule curretEod.PosiNetFeePrice = position.PosiNetFeePrice; curretEod.PosiNetNoFeePrice = position.PosiNetNoFeePrice; curretEod.PosiQuantity = position.PosiQuantity; - curretEod.PosiTradingFee = -position.PosiTradingFee * directionRatio; + curretEod.PosiFeePending = -position.PosiTradingFeePending * directionRatio; } else { - var eventTradingFee = openFlowEvents.Sum(s => s.TradingFee); - curretEod.PosiTradingFee = eod.PosiTradingFee - eventTradingFee * directionRatio; + var eventTradingFee = openFlowEvents.Sum(s => s.TradingFeePending); + curretEod.PosiFeePending = eod.PosiFeePending - eventTradingFee * directionRatio; if (openFlowEvents.Count() == 0) { curretEod.PosiNetPrice = eod.PosiNetPrice; curretEod.PosiGrossPrice = eod.PosiGrossPrice; curretEod.PosiNetFeePrice = eod.PosiNetFeePrice; curretEod.PosiNetNoFeePrice = eod.PosiNetNoFeePrice; - curretEod.PosiFeePending = curretEod.PosiFeePending<0 ? 0: curretEod.PosiFeePending; } else //平仓数量一定<持仓数量 { diff --git a/YLErpDAL/Modules/SwapModule/SwapTradeService.cs b/YLErpDAL/Modules/SwapModule/SwapTradeService.cs index a5256f69..10845c4e 100644 --- a/YLErpDAL/Modules/SwapModule/SwapTradeService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapTradeService.cs @@ -412,6 +412,7 @@ namespace YLErp.Modules.SwapModule interestPosition.interest_rule = swapFloatRate.interest_rule; interestPosition.interest_rest_days = swapFloatRate.interest_rest_days; interestPosition.IsAnnualized = swapFloatRate.is_annualized ?? false; + interestPosition.InterestType = swapFloatRate.interest_type??0; } var interval = new IntervalModel() { diff --git a/YLErpWeb/App_Docs/导入模板/阶梯费率导入模板.xlsx b/YLErpWeb/App_Docs/导入模板/阶梯费率导入模板.xlsx index da4825b93d3ff02c9be9593e067d622e256b9024..d7ffdcecc732ceac13587bb2dfa513b071564530 100644 GIT binary patch delta 2248 zcmV;(2sii6MT|wT$_9UYWCY9y0{{Tf1^@sL0001ZY%h0ja%*C5Z)+}iZEUPn(N5bi z6n&qxe~A1Z5~oetMx=ajt!Q?!Cu1yL-zlHLj?TjOPKuJ2ocK0Pqo$dHQUF-dt& z19VL#+Uvf5x4YnCHs*Y006;DSlqgmBmL;QvW<>7rg63eEaFG!OLou~vAt;GuLaEA9 z%du_G$_UF*h2V>qVDQO=MRdTUc}8a<xftEx*8OtN05@RmX01f=nl&LF7q@T$)PA z(U-$e6z6n2+AoR=I0z3&wS=JV8`*RkrY24b6m#O<_O>Mi= z4(pnB#^^$>HKB*b@|@){Uj)d+4mfqaIb4*+a~6NA1Vq)bn=qyN_JOi#0*tZS((6F` znpuE07!4{$2XL9X*ip>H z@Bb!`8dx3xzy7UgmI)E+RFG%}Kcizh=@AKnsvH8opvRiERj=y)1(T5j6te^hGXe^@ z7`yD<0ssJ{1(QJxAb(Ad+aM5z@0I!=5ce3{n?#KjXSLc@)V)=0w>=X)j#0q4fb*fM z|Gfi_la+Fb*0N_X4A0BJuzWmfMfPBwG;K+FGlnlT0cN6DDH9nu92M^X3tN`IxOPA}jD)+lNxkt>Ws2wI{g z-Zhlf{22W~R=z3eB3!josJ1bFh@77z(Vru;S&{{*4LHA+L7EcLJ8$&w0Tp+OMaBOB z0096000030|76fn3c@fD1kkI5JwVgcRoBlvI+!F6#B=--*0ON;-yN5_4RE%q3_t`Spi1l zvT|5v)-mph+u2lF&PGf8iY66#ERLyAv9PHqVsT2vCKl&Zls_T)DSY$)OCPh;4xI`L zb^ocq9RUCUSpt)L85@6+!AiqG6h-%f|1iwnPIOU3CeuYhaOXllU`VFTK=LMLCSrGj zixvdyLal;OE4ZzjV5{_V(np@goF zkB|1Zb}`b1L&#$V!pA+Kaf@wkP^}Gex1fC-8I$f2qJu~zTsMDID!?@zl_lJ`n01Lx zGr>b031O0$?08<2BwPYUfy%-7xQS5?@+24S-^{3%j2c$mjP32fj$Z8Jm=eQi8aWRm zgToAU6qtk1Sz}~+sgncMR`4?h6Gq7woAgjmE?y_@`??<@(P9P10-TsacoyO*`E_TktmQ+AE!Q z#j2{jYS3s{e}eC3m)Ffx-Bi}I;(+2%aLN@hQ>b|J`nLV}3~_I(9$&_^nb}xL&r=X* z>v;R}Wn0eX`8~wHQ_E}gTPO&}3ei@7pWF`4FOn&W1D}js|HSo22^mvzN(aOH`tpPG zwP3rE?-c$e29`K<$vE*xG$7O;_lSEy+;|^;iufCokpmQyiXslPgdIKu34CM(%m)Ji z0ML`mAWi}BlNuo{8@L#|?A-zY0Hg%~02lxO00000000000000ZlVTx70XCDUAwUA_ z6_e^A9~^c6slOco003D6000yK000000000000000LK%~P85WZ}A`k_XbS+_ClTacR W0g;ntB0d2olcgdf2KFBS0002CY$9#| delta 2349 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 P0E#c_ApbGsuhRbjnkhcg diff --git a/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx b/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx index 4c4ea2b29a67625ef9afbee629f17399f7c9e929..43f1b2e86835fcc2c1fa633b46b4bfc997eba661 100644 GIT binary patch delta 9146 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 delta 9207 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 L4WfYTe{BB;&RA9( diff --git a/YLErpWeb/App_Docs/导出模板/资金监控模板1.xlsx b/YLErpWeb/App_Docs/导出模板/资金监控模板1.xlsx index 989cc2e6bc90b07c9db37871de27255311b7a841..939e31c375d8d2a5e0afca43ec6386ef55ee56a1 100644 GIT binary patch delta 5216 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 iBFTS(e@~srTrMdzUE~^Or?qqqQkI`c zt}~S(BO_Av6Q*bqqHP%RIbD75kRfJeZ^kmPI&IJKk+pxjl=D!)0CL~W6cq(gbe|Ur zr1nVtt+J}H_frlcHje1!j0p;72P6dUKuh9)jOCE1)R>7ZL{TuBGPTbWI=YcJm!=YO z^yRQG$}>71b<6S`PJ$fW|NMRb_1D9X?+@SpjGoAnY@UIC5GILrTr7x1&9{Dk9v7f3 zf<}BpB@BOfA4G?cfMaq6>42mskEeA2@y4z5A{GHYzqO;jkNc5t_Ih5&bh}+BHBrwq z-Hy|BI^9+~YPIgb8Q}*pCo`2kW?Dms$c40Sm_Cw4W5ISXW66rft^IhJx_{O*wma>x zu4$)?&gDuIdT1=pSds8~h)nE&Q`hUmd1X9fiAsM#R2|!eDfPDxluc7$jJ<8W4z#bC zg=mdYR5Ln&%hb&pBkKvJs(J#osyB*C@yEKNVkpzPuYwE;5A+^lkl-qb&9aze@lY7L zt0wwR2eHq}IZ$-0AiBKnk#24^0I--*vkszqrA>a#oY*<^(s@=Z;lc56?vl0q30tzUs z`HWu!002e^lTQpGe`@0}5Qgs;_8pAwW7*E3jfqp*Eun?ISoYLwMIOf@lI4|@6U)B) zjubm71WMZAXk^*{_s>X^%sV7VsT(NB z0W7(jfBrPvX|uL9fQyjO*n-r~wK=7h*PxhdoG;6t(kW&9M7pg1Doi?}2DZW< z;2D*DETwdOe_~~4*zkj}$qDAS%j6qT7UXZzeFhj)KP2a&fA){eXQjXs_Ekj&s)F37 z`BO&dd=~oWw}72}HIE!y{s0Nw0eYk)a=QHrmHPrx7UTgJe7`QWUVG&;zLTJZ4GM3; zxD#9G-o|Y0pJ4hh^p5mo`Fh^lFG7cZGf@c@+er6afA5|^tZIjOjN)vJrTgB=%flmB zj!lc+aj1lAi4YtkCH#*Mdyefx+=_yY~1~p5t zZXtXUZ|bqupvTzjZ{DLHb$X1QK1<%C$4rAi#@>G%Htov%C!HSurh5G(p7>3B8$iS6 z{|5j7fB*jg00960jMCo@f*=$I@K

K!{nH1GWtRyapq-uC$4>di$W728WC8*xB#E z_I*%u)p`N zQ;KI!vHFTL6vP(-ip&=^6kA_3P~^U7q1gGNJA-1s2yC-i0?Pgm=w$5@&B1@La`!Ow zD~cdID2_pRP>`U3Izoa9ng|IxXd@&jp^K2Ug-?Qb{cbM+vqlf@3JNLqblrmi001Hd zlRg?7f7C%s8$lEY@Vnr580KWbW};9jvb)kI7J4Zn`T@q>7c+F{&ARiV5h(~B6hzIT znhHWx5O3-sG->hUB)j@8+=z&0caJl}{O0|6!*k}EI%Mk*TV>GYQ>8LzfW8S7uDX1A z>D$N8oLQ0>$j~6Td=o66^Tx*ui zRYJ;Nh*`}beGgnd%^7V*S$SwG24CWE;W=Vtymf}HgY^0?kCXoHB*%M6`zkr>IPgO~UfS{wrVyLgu zLP1nj+2>JEF!#mxt7Ze=*$0u$IPVDnlcEC?vmYD+0|X`)qj9q(A2b01+O3mYAU6Z# zdjyk}AW9+-a)NU(OfbW64Rp(nh;~T9J7oE&vIZbHh759$Mq}Ue@sj}|AAi-L(XjqL zzMEcNH&1m_Si^`TCrjHDz_Q?X&q@saYIa6ygaPZ&RG#y8aA9Y>B_@vM@{

uL1)%wI)xARJp zkvG<<=pK3NGWi?h59tgcYdyC#oerPFYbKp77L2&g1MtutpuJS=a|*Gy zDK)gRHnFO(%(LotWXigsF{g7~sDoWw-bObtUB;neiX2&C-N$t~Q0p_=>K{bX%K1mk z{g$enH9a4k6L_h#9q&8!Tup;mP(xZ7l##f6Rc3vtISWg0HfPzadD(zF07sL_y|@m( z5}HFUGS@Qw`7GdCC4!NMik2hG=lZw!-d#rAl0$13jNItKfV8oaRW+nIowaruk-N0e zKdl_wj+JsWuESZg59>%p`V+K^ZV3ucov7yS7CH8(D?+5o#8Lt+Hs!zdXS1oOV16rx zSRBvIMuJB)94$@UqbFBni`xm1a5XHs-485kFZ^$yEnaSPC{jheO0Gt%oL3Wl^0d>* z(ny@v@6sY=TjZ5H{hu!_B@y1J7f*Row<_;ixmQM=o~@?pU4n+jv)NzYeei2Swa+E) z>m|u4fEv;ZRD+;laPyH z#-2JEAHBpu*O~74&=*tMXVw>oHf|I@aJL z#84eHB+Xo7*2T$qY|LDJbc7!3eQDPfbj36vs$?T0AZ21ZXUi5DI6jqBsO3>6W=nha zE1?oOX7Ua4wN0@!yaCUFBC{x6_H4L&*;I8 z$v?1@?6wd4-ul{qyFdQdjo{|IngmT{>oeJTE34^un$k^!Kt8LyPyd0x?IXfBTInV9 zDcVdq@9K`B8U4e0?A{a89T>_s1wCi9TAM|G$y&#O`8h;GeZv{6rwvh$M~3DM~q`JMKGT8q|vNs%zs*bT)kq|0b;=6C)31b_^r9U1*zt3_Y4d z)?28qUj-^aytgMk>H*iS0N;Cn28?JP*H}}O76y3Yvj0cLcXMYn1}YHqcu1Bl_4 zGmdV56h=I@x>TXo)pE=(+iM*8iqj%&ao}=4H~qK5xWjduo$fODa@jctztX;oWhf?t zs|IJ~Ze6J^h5NZM5(~-QB|hMSoyyE`Li@S9XE}cs^(-9n0{~p^j|}Bp}@ciC@|CzTKDN7>B&DsTu?nibOQo$xEjoC;Q;``K$PP$ zCkXE?a1y!_fO+~nLC{3~bI`hlYf#0ckC3lb`4Q2W9j&^ibX+x@_EeDMf9zgZ$@^-B zDoJaHX~o}XCXNapqxZGn-n+O-xdPi>GV|SrAzu!V+lXC))t0}#7%As-tr9P3MI^M= z#j~NxpcYJQg=A8ch_Da&r7xIlv9NbaoG>b(+tF8$?vnLUKMFcf9TkNzX$=^;s-jI) zRpB>(P@5dYHl%o~VFG77J~J6MXutI3glmVzX~2`EfU=thPi17M>qVFLB3|i0w#ThW ziizG?neN|oz$-xI<~;hBoa-UG+HwP>#CI8k_AP8?B8s{=$#B|DbQI}uD?WdVP&gIk zEJAqfV81qTzPjyv<=*_Qgy85#KL%%Qu$I!z-s-NU!u-ioNSCv7PDhzo9~ID)HS zC28YeY=*6LTl*0e$~YHuqS}_&bs>Qx3?azo&+~ZwWfnWUVonar^fk}oh@-|~M)T>R zLhL5V*iRdM5ndgx@YNdcW_N=z&=~G%+vo3UuVMG&ip=S^T%i?9f1x>h%WFG0T8Am2 zHx3m_Yq6;~WZ?R`&!|MsS?>r?N_ZveU!MT-^3~r|O|2h*>+=A|u4gM4@miggr<_s1 zD1JKvGdp!Ug}V)gHBA*+2>#8irLqAT;=J_fehZn5^b21o6$c#xTG3)AZ8N}^) zsR{N$M%)R-A5)f()q^p>VqqWd>)lkn)1`msq}<*AzI~TX^QZr@DRHC>;{71%17jW_ zL@Y7q%@*KU`m?Eg#fluze~0l#*z$t^_q|YRmF$6h5DJenQub#)0|3%LaQs优惠累计量下限 @Model.DiscountAccDown.OtcFormatMoney(true) - - 现券对冲交易费用 - @if (Model.BackDeskChargeIsPercent==true) - { - @Model.FrontDeskCharge.OtcFormatTenThousandsPercent(4) - } - else - { - @Model.FrontDeskCharge.OtcFormatMoney(true) 元/笔 - } - - - 现券对冲结算费用 - @if (Model.BackDeskChargeIsPercent == true) - { - @Model.BackDeskCharge.OtcFormatTenThousandsPercent(4) - } - else - { - @Model.BackDeskCharge.OtcFormatMoney(true) 元/笔 - } - diff --git a/YLErpWeb/Views/SwapRate/Edit.cshtml b/YLErpWeb/Views/SwapRate/Edit.cshtml index 38e7881e..358d6331 100644 --- a/YLErpWeb/Views/SwapRate/Edit.cshtml +++ b/YLErpWeb/Views/SwapRate/Edit.cshtml @@ -73,28 +73,6 @@ * -

- - - -
-
- - - -