diff --git a/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【债券ETF】-清洁版.docx b/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【债券ETF】-清洁版.docx
index e8bc1811..bdddc4db 100644
Binary files a/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【债券ETF】-清洁版.docx and b/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【债券ETF】-清洁版.docx differ
diff --git a/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【现券】-清洁版.docx b/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【现券】-清洁版.docx
index 91453642..acbaa09a 100644
Binary files a/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【现券】-清洁版.docx and b/Plugins/YLErp.Plugins.GuoLian/App_Docs/contract_template/国联民生-收益互换交易确认书-境内模板-【客户看多】-【现券】-清洁版.docx differ
diff --git a/Plugins/YLErp.Plugins.GuoLian/DocumentGenerator/TradeConfirmationGenerator.cs b/Plugins/YLErp.Plugins.GuoLian/DocumentGenerator/TradeConfirmationGenerator.cs
index d0ad079e..281889ce 100644
--- a/Plugins/YLErp.Plugins.GuoLian/DocumentGenerator/TradeConfirmationGenerator.cs
+++ b/Plugins/YLErp.Plugins.GuoLian/DocumentGenerator/TradeConfirmationGenerator.cs
@@ -47,6 +47,21 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
}
}
+ ///
+ /// 判断客户是否为看多方向
+ /// 规则:根据 PosiDirection(收支方向)和 PositionType(多空方向)组合出我方方向,再取反得到客户方向
+ ///
+ private bool IsCustomerLong(swap_position position)
+ {
+ if (position == null)
+ return false;
+
+ bool isOurLong = position.PosiDirection == (int)SwapDirectionEnum.支付
+ ? position.PositionType == (int)PositionTypeFlag.Short // 支付端:我方方向与 PositionType 相反
+ : position.PositionType == (int)PositionTypeFlag.Long; // 收取端:我方方向与 PositionType 相同
+ return !isOurLong;
+ }
+
///
/// 获取收益互换模板路径
///
@@ -55,20 +70,12 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
var trade = Context.Trade;
var underlying = Context.GetTradeUnderlying();
- // 判断客户看多/看空方向:
- // 先根据 PosiDirection(收支方向)和 PositionType(多空方向)组合出我方方向,再取反得到客户方向。
+ // 判断客户看多/看空方向
var swapPosition = Context.GetSwapPositions(trade.id, true)
.Where(x => x.PositionType == (int)PositionTypeFlag.Long || x.PositionType == (int)PositionTypeFlag.Short)
.FirstOrDefault();
- bool isCustomerLong = false;
- if (swapPosition != null)
- {
- bool isOurLong = swapPosition.PosiDirection == (int)SwapDirectionEnum.支付
- ? swapPosition.PositionType == (int)PositionTypeFlag.Short // 支付端:我方方向与 PositionType 相反
- : swapPosition.PositionType == (int)PositionTypeFlag.Long; // 收取端:我方方向与 PositionType 相同
- isCustomerLong = !isOurLong;
- }
+ bool isCustomerLong = IsCustomerLong(swapPosition);
// 判断标的类型(债券ETF vs 现券)
bool isEtf = IsBondEtf(underlying?.UnderlyingCode ?? string.Empty);
@@ -244,7 +251,7 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
dic["期初预付比例"] = "0.0000";
dic["期初预付金额"] = "0.00";
}
- bool posiLong = swapPosition?.PositionType == (int)PositionTypeFlag.Short ? false : true;
+ bool posiLong = IsCustomerLong(swapPosition);
// 计算平仓线、预警线、档位值(利率债TRS,固定4档)
var maintainRatePercent = (double)(clientMarginRate?.maintain_rate ?? 0) * 100; // 维持保证金率 A(%)
if (maintainRatePercent > 0)