客户设置互换天数&利息计算重置频率
This commit is contained in:
@@ -252,7 +252,7 @@ namespace YLErp.Modules.SwapModule
|
||||
string structureType = "普通债券类收益互换",
|
||||
bool cashNeedAfter = false)
|
||||
{
|
||||
var td = PrepareTrade(flowMerge, client, asset, underlying, structureType);
|
||||
var td = PrepareTrade(flowMerge, client, asset, underlying, clientMarginTemplate?.SwapEndDays??14, structureType);
|
||||
PrepareTradeExtend(flowMerge, td, underlying, swapFloatRate, clientMarginTemplate);
|
||||
td.TradeNumber = BizLogicSingleton.Instance.GenerateTradeNumberBeforeConfirm(td, DbContext);
|
||||
flowMerge.SwapTradeNo = td.TradeNumber;
|
||||
@@ -311,7 +311,7 @@ namespace YLErp.Modules.SwapModule
|
||||
/// <param name="asset"></param>
|
||||
/// <param name="underlying"></param>
|
||||
/// <returns></returns>
|
||||
private trade PrepareTrade(swap_flow_merge flowMerge, Client client, AssetUnit asset, underlying_manager underlying, string structureType = "普通债券类收益互换")
|
||||
private trade PrepareTrade(swap_flow_merge flowMerge, Client client, AssetUnit asset, underlying_manager underlying,int swapEndDays, string structureType = "普通债券类收益互换")
|
||||
{
|
||||
trade td = new trade()
|
||||
{
|
||||
@@ -339,7 +339,7 @@ namespace YLErp.Modules.SwapModule
|
||||
{
|
||||
td.StartDate = flowMerge.SettleDate.Value;
|
||||
}
|
||||
td.ExerciseDate = QdpCalendarHelper.GetNonHolidayDefore(td.StartDate.Value.AddDays(14));
|
||||
td.ExerciseDate = QdpCalendarHelper.GetNonHolidayDefore(td.StartDate.Value.AddDays(swapEndDays));
|
||||
PrepareUnderlying(td, underlying);
|
||||
PrepareSwapTradeClient(td, underlying);
|
||||
td.TradeOldStatus = ConsTrade.新增待确认;
|
||||
@@ -446,6 +446,7 @@ namespace YLErp.Modules.SwapModule
|
||||
PosiMatuirityDate = td.ExerciseDate.Value,
|
||||
PosiStartDate = td.StartDate.Value,
|
||||
IsInitial = true,
|
||||
interest_rest_days = 7,
|
||||
OptTime = DateTime.Now,
|
||||
OptId = UserInfo.UserId,
|
||||
OptName = UserInfo.UserName,
|
||||
@@ -455,6 +456,9 @@ namespace YLErp.Modules.SwapModule
|
||||
interestPosition.InterestRateDefault = flowMerge.BsType == (int)PositionTypeFlag.Long ? (swapFloatRate.LongPricePoint ?? 0) : (swapFloatRate.ShortPricePoint ?? 0) * -1;
|
||||
interestPosition.InterestRateDefault = interestPosition.InterestRateDefault * 0.0001m;
|
||||
interestPosition.FloatRateUnderlyingCode = swapFloatRate.BaseUnderlyingCode;
|
||||
interestPosition.interest_rule = swapFloatRate.interest_rule;
|
||||
interestPosition.interest_rest_days = swapFloatRate.interest_rest_days;
|
||||
interestPosition.IsAnnualized = swapFloatRate.is_annualized ?? false;
|
||||
}
|
||||
var interval = new IntervalModel()
|
||||
{
|
||||
@@ -1411,6 +1415,8 @@ namespace YLErp.Modules.SwapModule
|
||||
position.InterestType = swap.InterestType;
|
||||
position.FloatRate = swap.FloatRate;
|
||||
position.FloatRateUnderlyingCode = swap.FloatRateUnderlyingCode;
|
||||
position.interest_rest_days = swap.interest_rest_days;
|
||||
position.interest_rule = swap.interest_rule;
|
||||
if (position.id == 0)
|
||||
{
|
||||
DbContext.swap_position.Add(position);
|
||||
|
||||
Reference in New Issue
Block a user