fix: 国联民生-簿记中增强收益结构可以识别并且对应到交易确认书中
This commit is contained in:
@@ -241,21 +241,15 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
|
||||
dic["参考标的期初全价%"] = ((double)swapPosition.PosiGrossPrice * 100).ToString("N4");
|
||||
dic["参考标的期初净价%"] = ((double)(swapPosition.PosiNetNoFeePrice ?? 0m) * 100).ToString("N4");
|
||||
|
||||
// 固定收益率(年化)- ETF默认取"增强收益"腿的计息利率
|
||||
// 固定收益率(年化)仅对应增强收益腿;互换利率腿在模板中应留空。
|
||||
bool isEtf = IsBondEtf(underlying?.UnderlyingCode ?? string.Empty);
|
||||
if (isEtf)
|
||||
{
|
||||
var enhancePosition = swapPositions
|
||||
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "增强收益")
|
||||
.FirstOrDefault();
|
||||
dic["固定收益率"] = enhancePosition != null
|
||||
? ((double)enhancePosition.InterestRateDefault * 100).ToString("N4")
|
||||
: "0.0000";
|
||||
}
|
||||
else
|
||||
{
|
||||
dic["固定收益率"] = "0.0000";
|
||||
}
|
||||
var enhancePosition = swapPositions
|
||||
.FirstOrDefault(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "增强收益");
|
||||
var swapRatePosition = swapPositions
|
||||
.FirstOrDefault(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "互换利率");
|
||||
dic["固定收益率"] = enhancePosition != null
|
||||
? ((double)enhancePosition.InterestRateDefault * 100).ToString("N4")
|
||||
: swapRatePosition != null ? "" : "0.0000";
|
||||
|
||||
// 获取客户适用的保证金率
|
||||
var clientMarginRate = UnderlyingHelper.GetApplicableMarginRate(
|
||||
@@ -416,13 +410,10 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
|
||||
|
||||
// 利率类型判断(固定/浮动)
|
||||
swap_position interestMargin = null;
|
||||
// ETF: 优先取"互换利率"腿
|
||||
if (isEtf)
|
||||
{
|
||||
interestMargin = swapPositions
|
||||
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "互换利率")
|
||||
.FirstOrDefault();
|
||||
}
|
||||
// 优先取互换利率腿,避免同时存在增强收益腿时受集合顺序影响。
|
||||
interestMargin = swapPositions
|
||||
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "互换利率")
|
||||
.FirstOrDefault();
|
||||
if (interestMargin == null)
|
||||
interestMargin = swapPositions
|
||||
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.interest_rest_days != null)
|
||||
@@ -442,11 +433,14 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
|
||||
dic["期末观察日"] = trade.ExerciseDate?.ToString("【yyyy】年【M】月【d】日") ?? "";
|
||||
if (interestMargin != null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(interestMargin.FloatRateUnderlyingCode))
|
||||
// 增强收益腿在确认书中固定展示为固定利率,不展示其浮动利率标的或利差。
|
||||
if (interestMargin.category_tag == "增强收益" || string.IsNullOrEmpty(interestMargin.FloatRateUnderlyingCode))
|
||||
{
|
||||
dic["利率类型"] = "固定利率";
|
||||
dic["IsFixed"] = "☑"; //☑
|
||||
dic["固定利率"] = ((double)interestMargin.InterestRateDefault * 100).ToString("N4");
|
||||
dic["固定利率"] = interestMargin.category_tag == "增强收益"
|
||||
? "0.0000"
|
||||
: ((double)interestMargin.InterestRateDefault * 100).ToString("N4");
|
||||
dic["利差"] = "";
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user