Files
zszq-trs/YLErpWeb/Views/trade/_tradeview/snowball.cshtml
T
2024-05-09 14:06:26 +08:00

293 lines
13 KiB
Plaintext

@model TradeViewModel
@{
Layout = null;
var tradeModel = Model.Trade;
var snowball = tradeModel.trade_snowball ?? new trade_snowball();
var isPremiumRate = tradeModel.IsUsePremiumRate == true;
var isMoneyness = tradeModel.IsMoneynessOption == "是";
}
<table class="table table-bordered table-exotic">
@if (snowball.PrepaymentUsed)
{
<tr>
<td class="tdRight">预付金比例</td>
<td>@(snowball.PrepaymentRatio.OtcFormatFlex(2, percent: true))</td>
@* <td class="tdRight">预付金返息率</td>
<td>@(snowball.PrepaymentInterestRate.OtcFormatFlex(2, percent: true))</td>*@
<td class="tdRight">预付金折现率</td>
<td>@(snowball.PrepaymentConvertCashRate.OtcFormatFlex(2, percent: true))</td>
</tr>
<tr>
<td class="tdRight">初始敲入</td>
<td>@(snowball.IsInitialKnockedIn == true ? "是" : "否")</td>
<td class="tdRight"></td>
<td></td>
</tr>
@if (!snowball.IsInitialKnockedIn)
{
<tr>
<td class="tdRight">敲入观察设置</td>
<td>
@(snowball.KIObservationType == KIObservationType.OnlyEndDate ? "仅到期日观察" : "每日观察")
</td>
<td class="tdRight">敲入障碍价格</td>
<td>@(snowball.KIBarrier.OtcFormatUmPrice(isMoneyness))</td>
</tr>
}
<tr>
<td class="tdRight">敲入执行价格</td>
<td>@(snowball.SpreadStrikeAtMaturity1.OtcFormatUmPrice(isMoneyness))</td>
<td class="tdRight">敲入参与率</td>
<td>@(snowball.KIParticipationRate.OtcFormatFlex(2, percent: true))</td>
</tr>
<tr>
<td class="tdRight">保本比率</td>
<td>@(snowball.PrincipalProtectionRate.OtcFormatFlex(2, percent: true))</td>
<td class="tdRight">首日是否计息</td>
<td>@(snowball.CouponIncludeStartDate == true ? "是" : "否")</td>
</tr>
<tr>
<td class="tdRight">终日是否计息</td>
<td>@(snowball.CouponIncludeEndDate == true ? "是" : "否")</td>
<td class="tdRight">计息年化方式</td>
<td>@(snowball.CouponDayCount.TrimToNull() ?? "非年化")</td>
</tr>
<tr>
<td class="tdRight">票息率</td>
<td>@(snowball.KORebate.OtcFormatFlex(2, percent: true))</td>
<td class="tdRight">红利票息 <i class="fa fa-question-circle" aria-hidden="true" title="到期未敲入未敲出需要赔付的年化票息"></i></td>
<td>@(snowball.Coupon.OtcFormatFlex(2, percent: true))</td>
</tr>
<tr>
<td class="tdRight">增强参与率</td>
<td>@(snowball.EnhancedParticipationRate.OtcFormatFlex(2, percent: true))</td>
<td class="tdRight">使用支付日计息</td>
<td>@(snowball.CouponUsePaymentDate == true ? "是" : "否")</td>
</tr>
<tr>
<td class="tdRight">敲出障碍价格</td>
<td>@(snowball.KOBarrier.OtcFormatUmPrice(isMoneyness))</td>
<td class="tdRight">敲出观察频率</td>
<td>
@{
tradeModel.MetaDic.TryGetValue(YLErp.DBModels.Consts.ConsTradeMetaKey.koObservationRate, out var koObservationRate);
@(!string.IsNullOrEmpty(koObservationRate) ?
koObservationRate.IndexOf("|") > 0 ?
"每" + koObservationRate.Substring(0, koObservationRate.IndexOf('|')).Replace('D', '天').Replace('W', '周').Replace('M', '月').Replace('Y', '年')
: "每" + koObservationRate.Replace('D', '天').Replace('W', '周').Replace('M', '月').Replace('Y', '年')
: "")
}
</td>
</tr>
<tr>
<td class="tdRight">敲出观察信息</td>
<td>
@{
if (!snowball.KOObservationDates.IsNullOrWhiteSpace())
{
var colInfos = "[{name:'日期',type:'text'},{name:'障碍价格',type:'" + (tradeModel.IsMoneynessOptionData ? "percent" : "number") + "'},{name:'票息',type:'percent'}]";
@MyControls.Btn("查看", string.Format("showObservationInfos('{0}',{1},'{2}')", "敲出观察信息", colInfos, snowball.KOObservationDates))
}
}
</td>
<td class="tdRight">敲出结算日列表</td>
<td>
@{
if (!snowball.KOObservationSettleDates.IsNullOrWhiteSpace())
{
var colInfos = "['日期']";
@MyControls.Btn("查看", string.Format("showObservationInfos('{0}',{1},'{2}')", "敲出结算信息", colInfos, snowball.KOObservationSettleDates))
}
}
</td>
</tr>
}
else
{
<tr>
<td class="tdRight">敲出观察信息</td>
<td>
@{
if (!snowball.KOObservationDates.IsNullOrWhiteSpace())
{
var colInfos = "[{name:'日期',type:'text'},{name:'障碍价格',type:'" + (tradeModel.IsMoneynessOptionData ? "percent" : "number") + "'},{name:'票息',type:'percent'}]";
@MyControls.Btn("查看", string.Format("showObservationInfos('{0}',{1},'{2}')", "敲出观察信息", colInfos, snowball.KOObservationDates))
}
}
</td>
<td class="tdRight">敲出观察频率</td>
<td>
@{
tradeModel.MetaDic.TryGetValue(YLErp.DBModels.Consts.ConsTradeMetaKey.koObservationRate, out var koObservationRate);
@(!string.IsNullOrEmpty(koObservationRate) ?
koObservationRate.IndexOf("|") > 0 ?
"每" + koObservationRate.Substring(0, koObservationRate.IndexOf('|')).Replace('D', '天').Replace('W', '周').Replace('M', '月').Replace('Y', '年')
: "每" + koObservationRate.Replace('D', '天').Replace('W', '周').Replace('M', '月').Replace('Y', '年')
: "")
}
</td>
</tr>
<tr>
@if (snowball.IsInitialKnockedIn)
{
<td class="tdRight"></td>
<td></td>
<td class="tdRight"></td>
<td></td>
}
else
{
<td class="tdRight">敲入观察信息</td>
<td>
@{
if (!snowball.ObservationDates.IsNullOrWhiteSpace())
{
var colInfos = "['日期']";
@MyControls.Btn("查看", string.Format("showObservationInfos('{0}',{1},'{2}')", "敲入观察信息", colInfos, snowball.ObservationDates))
}
}
</td>
<td class="tdRight">敲入观察频率</td>
<td>
@{
tradeModel.MetaDic.TryGetValue(YLErp.DBModels.Consts.ConsTradeMetaKey.kiObservationRate, out var kiObservationDate);
@(!string.IsNullOrEmpty(kiObservationDate) ?
kiObservationDate.IndexOf("|") > 0 ?
"每" + kiObservationDate.Substring(0, kiObservationDate.IndexOf('|')).Replace('D', '天').Replace('W', '周').Replace('M', '月').Replace('Y', '年')
: "每" + kiObservationDate.Replace('D', '天').Replace('W', '周').Replace('M', '月').Replace('Y', '年')
: "")
}
</td>
}
</tr>
<tr>
<td class="tdRight">敲出结算日列表</td>
<td>
@{
if (!snowball.KOObservationSettleDates.IsNullOrWhiteSpace())
{
var colInfos = "['日期']";
@MyControls.Btn("查看", string.Format("showObservationInfos('{0}',{1},'{2}')", "敲出结算信息", colInfos, snowball.KOObservationSettleDates))
}
}
</td>
<td class="tdRight">初始敲入</td>
<td>@(snowball.IsInitialKnockedIn ? "是" : "否")</td>
</tr>
<tr>
<td class="tdRight">敲出障碍价格</td>
<td>@(snowball.KOBarrier.OtcFormatUmPrice(isMoneyness))</td>
<td class="tdRight">敲出赔付类别</td>
<td>@(snowball.KOPayoffTypeDesc(tradeModel.CallPut))</td>
</tr>
@if (snowball.KOPayoffType == KOPayoffTypeEnum.ToOption)
{
<tr>
<td class="tdRight">敲出行权价1</td>
<td>@(snowball.SpreadStrikeAtKO1.OtcFormatUmPrice(isMoneyness))</td>
<td class="tdRight">敲出支付方式</td>
<td>@(RebateTypeEnumHelper.GetDesc(snowball.KORebateType))</td>
</tr>
}
else
{
if (snowball.KOPayoffType == KOPayoffTypeEnum.Rebate)
{
<tr>
<td class="tdRight">票息年化</td>
<td>@(snowball.IsFixedCoupon ? "否" : "是")</td>
<td class="tdRight">票息率</td>
<td>@(snowball.KORebate.OtcFormat(OtcFormatFlag.premiumRateP))</td>
</tr>
<tr>
<td class="tdRight">票息日历规则</td>
<td>@(snowball.CouponDayCount)</td>
<td class="tdRight"></td>
<td></td>
</tr>
<tr>
<td class="tdRight">票息包含首日</td>
<td>@(snowball.CouponIncludeStartDate == true ? "是" : "否")</td>
<td class="tdRight">使用支付日计息</td>
<td>@(snowball.CouponUsePaymentDate == true ? "是" : "否")</td>
</tr>
}
else if (snowball.KOPayoffType == KOPayoffTypeEnum.ToSpreadOption)
{
<tr>
<td class="tdRight">敲出行权价1</td>
<td>@(snowball.SpreadStrikeAtKO1.OtcFormatUmPrice(isMoneyness))</td>
<td class="tdRight">敲出行权价2</td>
<td>@(snowball.SpreadStrikeAtKO.OtcFormatUmPrice(isMoneyness))</td>
</tr>
}
<tr>
<td class="tdRight">敲出支付方式</td>
<td>@(RebateTypeEnumHelper.GetDesc(snowball.KORebateType))</td>
<td class="tdRight">年化期权费率</td>
<td>@(snowball.AnnualizedPremiumRate.OtcFormat(OtcFormatFlag.premiumRateP))</td>
</tr>
}
<tr>
@if (snowball.IsInitialKnockedIn)
{
<td class="tdRight">敲入到期支付类别</td>
<td>@(KIPayoffTypeEnumHelper.GetDesc(snowball.KIPayoffType))</td>
<td class="tdRight"></td>
<td></td>
}
else
{
<td class="tdRight">敲入障碍价格</td>
<td>@(snowball.KIPayoffType == KIPayoffTypeEnum.None ? "" : snowball.KIBarrier.OtcFormatUmPrice(isMoneyness))</td>
<td class="tdRight">敲入到期支付类别</td>
<td>@(KIPayoffTypeEnumHelper.GetDesc(snowball.KIPayoffType))</td>
}
</tr>
@if (snowball.KIPayoffType != KIPayoffTypeEnum.None)
{
<tr>
<td class="tdRight">敲入行权价</td>
<td>@(snowball.SpreadStrikeAtMaturity1.OtcFormatUmPrice(isMoneyness))</td>
@if (snowball.KIPayoffType == KIPayoffTypeEnum.ToCallSpreadOption || snowball.KIPayoffType == KIPayoffTypeEnum.ToPutSpreadOption)
{
<td class="tdRight">封顶/封底行权价</td>
<td>@(snowball.SpreadStrikeAtMaturity.OtcFormatUmPrice(isMoneyness))</td>
}
else
{
<td></td>
<td></td>
}
</tr>
}
<tr>
<td class="tdRight">红利票息 <i class="fa fa-question-circle" aria-hidden="true" title="到期未敲入未敲出需要赔付的年化票息"></i> </td>
<td>@(snowball.Coupon.OtcFormatPercent())</td>
<td class="tdRight"></td>
<td></td>
</tr>
}
<tr>
<td class="tdRight">敲入敲出状态</td>
<td>@(snowball.KnockInOutStatusCn)</td>
<td class="tdRight">敲入敲出日期</td>
<td>@(snowball.KnockInOutDate.OtcFormatDate())</td>
</tr>
@if (PS.Config.Company == CompanyEnum.兴证)
{
<tr>
<td class="tdRight">追保价格1</td>
<td>@(tradeModel.MetaDic.ContainsKey("MarginSpot1") ? tradeModel.MetaDic["MarginSpot1"] : "")</td>
<td class="tdRight">追保价格2</td>
<td>@(tradeModel.MetaDic.ContainsKey("MarginSpot2") ? tradeModel.MetaDic["MarginSpot2"] : "")</td>
</tr>
}
</table>