BugFix
在 `TradeConfirmationGenerator.cs` 中添加 `StockEqvNotionalRealSum` 变量以计算股票等值名义总和,并更新初始预付金支付日的计算逻辑,增加交易费率的计算。 调整 `swapTradeList.js` 和 `tradeConfirmBookListByClient.js` 中的列宽,分别将 `TradeNumber` 和 `ContractCode` 的宽度从 150 增加到 240。
This commit is contained in:
@@ -107,6 +107,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
|
||||
var trades = Context.Trades;
|
||||
var totalPosiQuantity = 0.0;
|
||||
var StockEqvNotionalRealSum = 0.0;
|
||||
foreach (var trade in trades)
|
||||
{
|
||||
var swapPositions = Context.GetSwapPositions(trade.id, true);
|
||||
@@ -118,7 +119,6 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
|
||||
if (count == 0)
|
||||
{
|
||||
dic["名义本金".Insert("名义本金".Length, "2?")] = trade.StockEqvNotionalReal.ToString("0.##");
|
||||
dic["成交日期"] = trade.TradeDate?.ToString("yyyy年M月d日");
|
||||
dic["开始日期"] = trade.StartDate?.ToString("yyyy年M月d日");
|
||||
dic["到期日期"] = trade.ExerciseDate?.ToString("yyyy年M月d日");
|
||||
@@ -164,7 +164,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
dic["固定利率"] = "";
|
||||
dic["重置频率"] = interestMargin?.interest_rest_days;
|
||||
}
|
||||
dic["初始预付金支付日"] = interestMargin?.HappenDate == null ? "" : interestMargin?.HappenDate?.ToString("【yyyy】年【M】月【d】日");
|
||||
dic["初始预付金支付日"] = initialMarginQuery.FirstOrDefault()?.HappenDate == null ? "" : interestMargin?.HappenDate?.ToString("【yyyy】年【M】月【d】日");
|
||||
|
||||
dic["管理人名称"] = client.Manager;
|
||||
var calculationBasis = interestMargin?.FloatRateUnderlyingCode;
|
||||
@@ -180,11 +180,16 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
dic["计算基准"] = calculationBasis;
|
||||
dic["初始保障金率"] = ((clientMarginRate?.InitMarginRate ?? 0) * 100).ToString("0.####") + "%";
|
||||
dic["维持保障金率"] = ((clientMarginRate?.MaintenanceRate ?? 0) * 100).ToString("0.####") + "%";
|
||||
dic["交易费率"] = dic["基本费率"];
|
||||
var initialMarginSum = initialMarginQuery.Sum(x =>
|
||||
x.InterestDirection == 2 ? x.InterestPrincipalFix * -1 : x.InterestPrincipalFix);
|
||||
dic["期初预付金".Insert("期初预付金".Length, "2?")] = trade.StockEqvNotionalReal.ToString("0.##");
|
||||
}
|
||||
|
||||
var row = new JObject();
|
||||
row["序号"] = ++count;
|
||||
FormatToDict("名义本金", trade.StockEqvNotionalReal, row);
|
||||
StockEqvNotionalRealSum += trade.StockEqvNotionalReal;
|
||||
row["成交日期"] = trade.TradeDate?.ToString("【yyyy】年【M】月【d】日");
|
||||
row["开始日期"] = trade.StartDate?.ToString("【yyyy】年【M】月【d】日");
|
||||
row["到期日期"] = trade.ExerciseDate?.ToString("【yyyy】年【M】月【d】日");
|
||||
@@ -199,11 +204,9 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
//row["利差"] = ((interestMargin?.InterestRateDefault) ?? 0) * 100;
|
||||
//var basicFee = trade.StockEqvNotionalReal == 0 ? 0 : ((double)((swapPosition?.PosiTradingFeePending) ?? 0) / trade.StockEqvNotionalReal) * 100;
|
||||
//row["基本费率"] = (basicFee * 2).ToString("f4");
|
||||
var initialMarginSum = initialMarginQuery.Sum(x =>
|
||||
x.InterestDirection == 2 ? x.InterestPrincipalFix * -1 : x.InterestPrincipalFix);
|
||||
|
||||
FormatToDict("交易费用", (double)((swapPosition?.PosiTradingFeePending * 2) ?? 0), row);
|
||||
row["交易费率"] = row["基本费率"];
|
||||
FormatToDict("期初预付金", (double)initialMarginSum, row);
|
||||
|
||||
row["期初预付金利率"] = ((initialMarginQuery.FirstOrDefault()?.InterestRateDefault) ?? 0) * 100;
|
||||
row["追加预付金返息率"] = ((clientMarginRate?.AddToMarginRebateRate) ?? 0) * 100;
|
||||
if (!string.IsNullOrEmpty(underlyingCode))
|
||||
@@ -233,6 +236,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
_ => ""
|
||||
};
|
||||
table1.Add(row);
|
||||
dic["名义本金".Insert("名义本金".Length, "2?")] = StockEqvNotionalRealSum.ToString("0.##");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user